Back to blog
Nov 02, 2025
2 min read

标题:【我摊牌了】从0到1,我用Cloudflare免费撸了一个属于自己的书签管理器!

用cloudflare worker 搭配 浏览器扩展来保存和管理自己的书签

标题:【我摊牌了】从0到1,我用Cloudflare免费撸了一个属于自己的书签管理器!

今天这篇文章,不聊什么高大上的分布式、微服务,就想跟大家唠唠,我是怎么从一个简单的想法开始,一步步免费“白嫖”Cloudflare,给自己撸了一个超级实用的个人书签(链接)管理工具。

是的,你没听错,完全免费

一、故事的开始:我的浏览器收藏夹“炸”了

事情是这样的,作为一个日常在网上冲浪的“数字松鼠”,我的浏览器收藏夹已经彻底失控了。技术文章、摸鱼网站、设计素材、沙雕视频……全都乱七八糟地堆在一起。

每次想找个东西,都像是考古现场。

chrome_bookmark

市面上的书签工具我也试过不少,但总感觉要么太重,要么数据在别人手上不放心,要么就是……要花钱(对,我就是这么抠)。

于是,一个大胆的想法在我脑海里冒了出来:为啥不自己动手,撸一个?

我的要求很简单:

  1. 一键保存:看到好东西,点一下就完事。
  2. 后端得简单:别让我搞什么服务器、数据库运维,我只想安安静静写代码。
  3. 得能自己控制数据:数据是我的,我想怎么搞就怎么搞。
  4. 最好是免费的!(这才是重点)

选来选去,Cloudflare Workers 这位“免费劳动力”进入了我的视线。这玩意儿简直是为我这种“懒人”开发者量身定做的!

二、开干!我的技术选型“三件套”

确定了目标,咱就开干。我的“豪华”技术栈如下:

  • 后端大脑: Cloudflare Worker。写点 JavaScript 代码就能跑,自带 API 网关,还不用管服务器,完美!
  • 数据仓库: Cloudflare KV。一个简单的键值对数据库,存点 JSON 数据绰绰有余,而且免费额度大到用不完。
  • 前端触手: 原生浏览器扩展。就用最基础的 HTML + JS + CSS,搞个小弹窗,把活儿干了就行。

整个架构思路清晰得一批:

浏览器扩展当“侦察兵”,负责在网页上抓取情报(标题、描述);抓到后,通过“无线电”(API)发给“指挥部”(Cloudflare Worker);指挥部收到情报后,把它存进“档案室”(KV 数据库)。

同时,这个指挥部自己也能当“展览馆”,直接生成一个网页,把所有情报都展示出来。

new_site

三、踩坑与迭代:从“能用”到“好用”的进化之路

撸代码的过程,就是不断给自己提需求,然后不断踩坑、填坑的过程。

第一阶段:跑起来就行

一开始很简单,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

好了,今天的分享就到这。希望我的这点折腾经验,能给你带来一些启发。