最近决定撸一个类似 HackerNews 的网站,为啥要撸这样一个网站呢?原因是 Hacker News 这个网站,简单,简单,还是简单,这很符合我那一点点不靠谱的审美观,但 Hacker News 是英文的。所以,决定也搞一个中文的。以后,大家有没有好的网站,好的产品,就可以在上面发布,不需要到 Hacker News 或者 Product hunt 。完全中文,完全符合国人习惯,打破美帝垄断,自主创新。
网站最初构想,很简单,用户提交一个网站(或者产品),填上标题、链接、描述,再加上图片,就可以发布了。对,是可以添加图片和显示的,相比全文字版的 Hacker News ,遥遥领先。
所以网站功能也简单,基本上就是一个关于链接的 CRUD 操作,再加上一个用户注册功能。基本就这几个功能,至少在初期,不想搞得太复杂。当然了,也模仿了 Hacker News ,可以对链接评分,评论,还在网上抄了一个 Hacker News 的文章推荐算法。这几个功能都不算太难,所以也把它们放在初期就实现。
技术选型上,虽然现在 web 开发,nextjs nuxtjs 之类的很热门,奈何我只会 ruby ,所以就选了“相对”比较熟的栈:Rails (但也有不少坑)。
CURD 这些操作,Rails 太擅长了,基本都能帮我完成,没什么可说的。
但是,对于用户注册这个功能,现在想起来,感觉这个用户注册功能搞得有点复杂了。本来手工撸一个简单的用户注册,也不太难。但不知道哪根筋搞错了,直接就上了 devise , 然后坑就开始来了。这个 devise ,功能虽然强大,但可能也是过度的。我就被 devise 里的一个忘记密码功能给带进坑里了。
这个忘记密码功能,是通过邮件找回密码的。为了使用邮件找回密码,就得有邮件发送服务。为了找一邮件发送服务,找了国内的腾讯、网易、阿里,都不靠谱。网友推荐的 ZOHO ,也不适合。还有网友推荐 Yandex 的,现在北极熊和西方国家那关系,也不敢用。找了亚马逊的,用户友好度超差,到现在还搞不懂怎么用,虽然已经发了 2 封测试邮件。
后来,自己还搭建一 mailserver 的 docker ,当我的 QQ 邮箱收到自己的 mailserver 发来的邮件,着实让我高兴了一把。但我尝试往 gmail 发送邮件时,被拒收了。具体原因忘了,好像是要通过什么认证的邮件服务,发出的邮件 gmail 才接收。我的心马上又薄凉薄凉了。自己搭建邮件服务,没那么简单。
后来,又了解到 sendgrid 可以发送邮件,马上注册一个,日,又提示我的账户没有授权。差不多想放弃,后来,发现 brevo ,有免费额度,每天 300 封邮件,对我来说够用了。brevo 界面简单,友好。到这,忘记密码这个功能的最后一环,终于补上了。
但为了折腾这个发送邮件功能,花了差不多 1 周,而代码开发才两天:(
除了发送邮件是个大坑,我一直信赖的 Rails 本身也有坑,Rails 7 之后,引入了个 turbo 方法,文档少也就算了,结果在 iphone 手机上的浏览器(我的是 safari ),竟然不兼容。现在还没解决,如果看到这篇文章的网友,在手机上,打开 webtagr.com 网站时,遇到一些错误,是因为 Rails 的 tubro 方法,想把一个链接设置为 POST 方法,但在手机上,turbo 不起作用,这个 post 方法,就会回退为 get 方法,但在 rails 的 route 中,又没有设置对应的路由。所以报错。(如果有网友知道怎么解决,还请告知)。
做这个网站给我的一些教训是:
不管怎么样,https://webtagr.com 还是上线了,众位网友大咖,有什么好的网站或产品,也可以到上面去分享。
1
fgt1t5y 313 天前
|
2
FightPig 313 天前
1 、rails 现在内置的功能完全可以自己写个用户系统,很简单,我多年不用 devise 了,定制麻烦,而且国内大多喜欢用手机号,邮件不符合大多需求。
2 、另外 turbo 不是 7 后引入的,文档 https://turbo.hotwired.dev/这里还不够? 3 、我看你用的 importmap ,这个 safari 好像支持不太行,可以查看 https://caniuse.com/import-maps |
3
lordofmetis 313 天前 via Android
楼主推荐现在学 rails 吗?感觉现在的 nextjs+vercel 更方便的样子
|
5
uijk OP @lordofmetis 下一个网站打算用 nextjs
|
8
sead 311 天前
mailjet
这个完美嵌入 rails ,免费版每天 200 个邮件推送 |
11
kuber 309 天前
虽然这种需求是一定有的,但是好奇个人做这样一个网站会有人去用吗,毕竟注册然后提交是比较耗时强的操作,除非有很好的推广能力,要不用户会很少吧。
我有一个建议,能不能做成一个聚合网站,把几个网站上的推荐聚合起来,比如 V2EX, reddit 之类的。 |