背景
最近我一朋友海淘github,找到了一个网页书签管理应用,被其漂亮的ui所吸引,地址如下:
这是仓库里的贴图:
这是进入应用后的样子:
关于bookmarks
这个仓库就是一个网页书签管理应用,可以给书签打标签、搜索等等。基于React
、Zustand
、tailwindcss
、headlessui
等框架技术进行开发。
个人觉得确实做的很好看。但是这个应用有些地方不太好用,比如:
- 后台使用
supabase
做数据交互存储、登陆认证等,但我想很多人连supabase
是什么都不知道(至少在此之前我是不知的)。 supabase
是支持离线部署的,官方也给了部署的docker-compose
文件,但经过尝试,这玩意部署起来要10来个左右的容器服务(?! cpu: "你不要过来啊!")。这个书签应用本身是比较轻量简洁的,但是要自己部署supabase
就太重啦。- 项目本身依赖太多其他在线服务,比如网页元信息的获取,依赖JsonLink,网页图标的展示依赖IconHorse, 这两个在线服务其实都挺有意思的,但是懂得都懂,白嫖都有限额。
总之,如果你不想去注册supabase
,创建一个supabase app
,那么这个应用就有些中看不中用了,当然这只是对白嫖党而言。也许这个仓库本身的目的就是借此来扩大supabase
的影响力,或者是宣传JsonLink、IconHorse都有可能。
项目魔改
与朋友多年老同学,想想要不自己折腾改造改造,顺便磨练下自己的技术。于是我想这个应用要脱离supabase
(也可以说不要后端),又要方便使用,那么做成个浏览器扩展插件应该不错,数据都存在localStorage
。于是我花了大概两周时间fork了原仓库,并删删改改彻底将其做成了一个chrome插件, 地址为:
主要改动的地方有:
- 移除了
supabase
依赖及相关的登陆认证模块。 - 新增了书签组的概念。
- 新增了书签的导入导出。
- 新增了插件弹出页,可以在当前网页上新增、移除书签。
- 变更网页元信息获取方式,不依赖有限的在线服务。
- 变更icon获取方式,不依赖有限的在线服务。
此前并没有做过浏览器插件的开发,项目改造使用了plasmo
这个框架,开发方便了许多,后端仔表示很满意。
插件弹出页:
应用主页:
最后
首先,得感谢原仓库作者, 做的确实很好看的。
其次,后端仔对前端不求甚解,如果有bug、有问题勿喷。
最后,如果你喜欢可以给个免费的star🌟。好人一生平安🙏。