标题:【我摊牌了】从0到1,我用Cloudflare免费撸了一个属于自己的书签管理器!
今天这篇文章,不聊什么高大上的分布式、微服务,就想跟大家唠唠,我是怎么从一个简单的想法开始,一步步免费“白嫖”Cloudflare,给自己撸了一个超级实用的个人书签(链接)管理工具。
是的,你没听错,完全免费!
一、故事的开始:我的浏览器收藏夹“炸”了
事情是这样的,作为一个日常在网上冲浪的“数字松鼠”,我的浏览器收藏夹已经彻底失控了。技术文章、摸鱼网站、设计素材、沙雕视频……全都乱七八糟地堆在一起。
每次想找个东西,都像是考古现场。

市面上的书签工具我也试过不少,但总感觉要么太重,要么数据在别人手上不放心,要么就是……要花钱(对,我就是这么抠)。
于是,一个大胆的想法在我脑海里冒了出来:为啥不自己动手,撸一个?
我的要求很简单:
- 一键保存:看到好东西,点一下就完事。
- 后端得简单:别让我搞什么服务器、数据库运维,我只想安安静静写代码。
- 得能自己控制数据:数据是我的,我想怎么搞就怎么搞。
- 最好是免费的!(这才是重点)
选来选去,Cloudflare Workers 这位“免费劳动力”进入了我的视线。这玩意儿简直是为我这种“懒人”开发者量身定做的!
二、开干!我的技术选型“三件套”
确定了目标,咱就开干。我的“豪华”技术栈如下:
- 后端大脑: Cloudflare Worker。写点 JavaScript 代码就能跑,自带 API 网关,还不用管服务器,完美!
- 数据仓库: Cloudflare KV。一个简单的键值对数据库,存点 JSON 数据绰绰有余,而且免费额度大到用不完。
- 前端触手: 原生浏览器扩展。就用最基础的 HTML + JS + CSS,搞个小弹窗,把活儿干了就行。
整个架构思路清晰得一批:
浏览器扩展当“侦察兵”,负责在网页上抓取情报(标题、描述);抓到后,通过“无线电”(API)发给“指挥部”(Cloudflare Worker);指挥部收到情报后,把它存进“档案室”(KV 数据库)。
同时,这个指挥部自己也能当“展览馆”,直接生成一个网页,把所有情报都展示出来。

三、踩坑与迭代:从“能用”到“好用”的进化之路
撸代码的过程,就是不断给自己提需求,然后不断踩坑、填坑的过程。
第一阶段:跑起来就行
一开始很简单,Worker 端写了两个接口:一个 POST 用来接收数据,一个 GET 用来展示一个巨丑的 HTML 列表。扩展这边也一样,fetch 一下就完事。
部署成功的那一刻,我激动地保存了第一个链接——“如何从零开始学习JavaScript”。嗯,很应景。
第二阶段:喂,安全第一啊!
我正得意呢,突然一个激灵:我这个 Worker 的地址是公开的,那岂不是谁知道了都能往我这儿塞垃圾链接?这可不行!我的地盘我做主!
解决方案:引入“秘密令牌”(Secret Token)。
我在 Worker 的后台环境变量里,藏了一个只有我知道的密码。然后,所有写入操作(比如添加链接),都必须在请求头里带上这个“接头暗号”。暗号对上了,才让你进门。
这就安全多了。我还在主页上加了删除和编辑功能,同样也用这个暗号来保护。
第三阶段:能不能搞个“公开阅览室”?
新的问题又来了。每次我打开我的链接主页,都得弹窗让我输一遍密钥才能看,太麻烦了!我有些链接其实是想公开分享的。
于是,我把安全模型改成了 “公开可读,私有可写”。
- 看列表 (
GET请求):随便看,不要票! - 想搞事 (
POST,DELETE等):对不起,请出示你的密钥!
这个改动让主页的体验瞬间起飞,直接打开就能看,舒服了~
第四阶段:颜值就是生产力!
功能稳定了,但那个丑到不行的界面实在是忍不了。于是,我花了一个下午,重新设计了整个页面。
- 用上了好看的字体 (
Poppins)。 - 卡片式布局,加了阴影和圆角。
- 最骚的是,加了自动暗黑模式!根据你系统设置自动切换,B格瞬间拉满。
第五阶段:上个“户口”,绑定我自己的域名!
用 *.workers.dev 的域名总感觉是在“借宿”。男人,得有自己的“房产”!
于是我把我的一个闲置域名绑了上去,比如 links.mydomain.com。这个过程也踩了个大坑:扩展程序的 manifest.json 文件里,必须把新域名加到 host_permissions 权限列表里,否则浏览器会因为安全策略,直接拒绝扩展和你的新域名通信。
这个问题花了我半小时才定位到,血泪教训啊兄弟们!
四、最终成果与总结
就这么一步步迭代下来,我从一个简单的想法,最终收获了一个功能完整、界面美观、安全可控,还部署在自己域名下的个人书签应用。
最重要的是,整个过程,我没花一分钱!
这个小项目,不仅解决了我自己的痛点,也让我把 Cloudflare 全家桶玩了个遍。从 Worker 的路由、环境变量,到 KV 的读写,再到 DNS 和 SSL 配置,里里外外的坑基本都踩了一遍。
如果你也像我一样,是个喜欢折腾、有代码洁癖、还想省钱的开发者,我强烈推荐你也试试这个方案。
我把所有的代码都开源放到了 GitHub,也写了一份保姆级的部署文档。如果你感兴趣,可以直接拿去用,或者在我的基础上魔改,打造一个完全属于你自己的版本。
GitHub 地址:
https://github.com/samawong/My-Saved-Links
好了,今天的分享就到这。希望我的这点折腾经验,能给你带来一些启发。