说来也挺巧,上周末我正帮朋友捣鼓他的作品集网站。一切都很顺利:设计美观、加载飞快、Vercel免费托管。完美。
结果他突然说:"我需要一个联系表单。"
没问题啊,我说。直接用那些表单后端服务就行,简单。
他查了下价格。"每月20美元?!就为了存点文本数据?"
说实话?这话在理。从什么时候起我们居然都默默接受了这种定价?
这让我开始思考我们居然在为本质上只是数据库插入操作和邮件发送的功能支付相当于流媒体会员的费用。就这么简单:存点文本,发个通知。
我为此郁闷的时间长到不好意思承认。后来我想通了——不如自己动手搭一个。这能有多难呢?
我构建了什么FormRelay非常简单直白:把你的HTML表单指向它,它会保存数据、给你发邮件,并在仪表盘展示所有内容。就这样。
不同之处?你需要自己托管。用你的Supabase数据库,你的Vercel部署,你的数据。
最棒的部分?Supabase免费版支持5万用户,Vercel的Hobby方案是免费的,Resend每月免费提供3000封邮件。
所以没错:0美元/月 vs 20美元/月。这笔账你自己算。
"但自托管不是很复杂吗?"大家都这么说。要放在10年前?确实。你得懂服务器管理、处理安全更新等等。
但现在呢?有了Vercel和Supabase之后?
- 复刻代码库
- 点击部署
- 复制粘贴环境变量
- 完事儿
我写README文档花的时间都比部署这东西长。
对比一下:创建新账户、输入信用卡信息、折腾他们的仪表盘、触达莫名奇妙的限制,等明年他们涨价时又得迁移数据——到底哪个更复杂?
说到这,可能有些读者要不认同了我觉得我们对"租用一切"已经过于习以为常。
早期的独立网络精神本是关于真正拥有自己的东西。是的,那时更麻烦。是的,你得学习新东西。但你的网站完全属于你。
现在呢?我们只会不停地订阅。当然,时间就是金钱,我理解。不是每个人都想折腾基础设施。
但在"自己运维服务器机架"和"每年花300美元让别人存联系表单数据"之间,存在巨大的空白。
这正是我想填补的空白。
顺便分享些心得Next.js 15现在确实好用了。经历应用路由器的风波后,它终于走上正轨。服务端操作开箱即用,不再需要折腾。
Supabase实在太强了——实时更新、身份验证,还有真正优质的文档?这谁能忍住不用啊!
最难的部分倒不是写代码,而是把安装说明写得清晰到小白都能看懂。在这上面花了太多时间。
关于邮件解决方案我选择Resend是因为购买域名时没带邮箱服务,也不想单独买邮箱托管。Resend免费版(每月3000封)正合适。
但重点是:如果你域名自带邮箱,完全可以把Resend换成普通SMTP。某种程度上更简单,填好SMTP凭证就能用。
所以连这个"依赖"都不是真正的依赖。有啥用啥就行。
技术栈(给感兴趣的人)- Next.js 15(应用路由器)
- Supabase(Postgres+实时+鉴权)
- Tailwind CSS
- Radix UI
- Resend发邮件(有SMTP可直接用)
- Lucide图标
不搞花哨的,只用稳定可靠的技术。
你可以直接使用完整代码在GitHub:github.com/Varshithvhegde/formrelay
在线演示:formrelay.varshithvhegde.in
MIT开源协议。随意使用。发现bug可以告诉我,想加功能欢迎提PR。
真正的重点这其实不关乎表单或省钱。
而是提醒我们自己:我们完全有能力构建东西。不必为每个小功能都买SaaS产品。工具是现成的,平台是免费的,我们会写代码。
很多看似需要月付20美元的问题,其实只是伪装成难题的周末小项目。
最后说明:我知道SaaS公司提供价值——技术支持、维护、功能扩展等。但就表单处理这种基础功能?真的不值。

随时随地看视频