前前后后花了半年时间,从零开始开发了一个 CMS 和一个全新的博客。
先上链接:https://darmau.co
初衷当然是因为现有方案没法满足我需求,插件当然也能实现,但写太多插件还不如自己从头写一个 CMS 。顺便也是一个学习的过程。
最终整个博客分为四个部分:数据库,CMS ,博客,边缘函数。
数据库使用了 Supabase ,充分利用了 RLS 和 Postgres 的各类插件。另外用户注册登录以及认证使用了 Supabase Auth 。
CMS 使用 SvelteKit 开发,部署在 Cloudflare 上。负责对各类内容的编辑,数据的查看和修改,配置的设置等。
前端部分就是你们见到的。
还一个 Cloudflare Workers 负责处理图片上传和信息处理、AI 接口调用等,提高第三方请求的稳定性。
关于架构可见关于本站
我总结了 4 大特点,也是一开始让我决定自己开发 CMS 的几个功能:
各端分离。数据库、CMS 、博客都是独立的,将来重构任何一部分都会比较容易。
原生支持对象存储。因为有大量摄影图需要存储以及 CDN 加速,所以一开始我就决定媒体文件只支持 S3 存储。
多语言。新版博客希望能吸引来自全世界的访客。实际上前一版就有一些外国人来评论了。在新版里做的更好一些。已有英文日文内容,内容大部分由 AI 翻译,然后我再校对。
AI 集成。目前根据标题生成 slug 、生成图片描述、生成概述和标签已经由 AI 完成。后续可能有更多应用。