后端仔把一个github书签项目做成了浏览器插件

39 阅读2分钟

背景

最近我一朋友海淘github,找到了一个网页书签管理应用,被其漂亮的ui所吸引,地址如下:

github.com/br4adam/boo…

这是仓库里的贴图: image.png

这是进入应用后的样子: image.png

关于bookmarks

这个仓库就是一个网页书签管理应用,可以给书签打标签、搜索等等。基于ReactZustandtailwindcssheadlessui等框架技术进行开发。 个人觉得确实做的很好看。但是这个应用有些地方不太好用,比如:

  • 后台使用supabase做数据交互存储、登陆认证等,但我想很多人连supabase是什么都不知道(至少在此之前我是不知的)。
  • supabase是支持离线部署的,官方也给了部署的docker-compose文件,但经过尝试,这玩意部署起来要10来个左右的容器服务(?! cpu: "你不要过来啊!")。这个书签应用本身是比较轻量简洁的,但是要自己部署supabase就太重啦。
  • 项目本身依赖太多其他在线服务,比如网页元信息的获取,依赖JsonLink,网页图标的展示依赖IconHorse, 这两个在线服务其实都挺有意思的,但是懂得都懂,白嫖都有限额。

总之,如果你不想去注册supabase,创建一个supabase app,那么这个应用就有些中看不中用了,当然这只是对白嫖党而言。也许这个仓库本身的目的就是借此来扩大supabase的影响力,或者是宣传JsonLinkIconHorse都有可能。

项目魔改

与朋友多年老同学,想想要不自己折腾改造改造,顺便磨练下自己的技术。于是我想这个应用要脱离supabase(也可以说不要后端),又要方便使用,那么做成个浏览器扩展插件应该不错,数据都存在localStorage。于是我花了大概两周时间fork了原仓库,并删删改改彻底将其做成了一个chrome插件, 地址为:

github.com/young2j/boo…

主要改动的地方有:

  • 移除了supabase依赖及相关的登陆认证模块。
  • 新增了书签组的概念。
  • 新增了书签的导入导出。
  • 新增了插件弹出页,可以在当前网页上新增、移除书签。
  • 变更网页元信息获取方式,不依赖有限的在线服务。
  • 变更icon获取方式,不依赖有限的在线服务。

此前并没有做过浏览器插件的开发,项目改造使用了plasmo这个框架,开发方便了许多,后端仔表示很满意。

插件弹出页: image.png 应用主页: image.png

最后

首先,得感谢原仓库作者, 做的确实很好看的。

其次,后端仔对前端不求甚解,如果有bug、有问题勿喷。

最后,如果你喜欢可以给个免费的star🌟。好人一生平安🙏。

github.com/young2j/boo…