本项目不是 WordPress,也不是 Typecho,今天正式把它开源:项目叫 Jxe · 轻博客(仓库名 moments),而你正在浏览的这个网站,就是它最完整的线上演示。

开源地址:<https://github.com/mliae/moments>
它是个什么样的站?
我想要的,是一个介于「发动态」和「写博客」之间的东西:
- 想随手记一句话、发一张照片、转一首歌的时候,用说说——打开就能发,支持九图、视频和音乐,瀑布流刷起来像翻一本日记;
- 想认真写点东西的时候,用文章——Markdown 写作,封面、摘要、评论一应俱全;
- 照片拍得多了,就丢进相册;
- 再加上关于我、友链、搜索、RSS,一个人日常表达需要的东西,基本都齐了。
它不追求大而全,只想安安静静地、快速地把内容呈现出来。

功能一览
用下来觉得最值的几个设计:
- 说说时间线:图文、最多九条视频、网易云音乐混排;图片懒加载并自动生成缩略图,手机原图哪怕二十兆,首页也只加载百 KB 级的缩略版
- 视频播放:MP4、HLS 直链、B站和 YouTube 链接都能发;iPhone 拍的 HEVC 视频会在浏览器里自动转成通用的 H.264,不用自己动手转码
- 评论区:表情包面板、图片评论、楼中楼回复;评论里 @ 一下 AI 助手「小J」,它会基于 Workers AI 自动回你一条,回复失败还会自动切换备用模型
- 图片体验:全站统一的灯箱放大、缩略图和 R2 直连,相册、说说和正文同一套处理
- 写作辅助:全文搜索(快捷键 Ctrl+K,文章、说说、友链分组展示)、RSS 订阅、sitemap,以及文章发布后自动推送到 IndexNow 和百度
- 后台管理:自定义秘密入口路径、职责清晰的分类设置页;站点域名和图床域名都能在后台动态切换,一处修改全站生效,不写死在代码里
- 访问统计:内置轻量统计,地区、来源、热门页面一目了然,不依赖第三方统计脚本
- 关于页与友链:时间线、数字统计、赞助码;友链支持自动抓取站点信息、分类和审核流程

技术架构
整个项目刻意保持简单:一个 Cloudflare Worker 就是整站。
- 运行时:Cloudflare Workers + Hono,服务端渲染首屏(边缘缓存加持下 TTFB 基本是毫秒级),前端是原生 HTML/CSS/JS,没有重型框架,加载快、耗电低
- 数据库:Cloudflare D1(SQLite),存文章、说说、评论和全部配置
- 文件存储:Cloudflare R2,零出口流量费;给 R2 绑上自定义域名就能走直连省 Worker 请求,留空则自动回退 Worker 代理,后台一个输入框随时切换
- AI 能力:Workers AI 驱动评论机器人,无需额外服务器
- 边缘缓存:随机背景图等外部资源经边缘拉取后缓存进 R2,既稳定又不依赖第三方图床
个人博客量级的访问,整套架构完全落在 Cloudflare 免费额度之内。
一分钟部署你自己的版本
仓库 README 里放了「Deploy to Cloudflare」按钮:
- 点按钮,授权 GitHub 和 Cloudflare;
- 平台自动创建 D1 数据库、R2 存储桶,构建并部署;
- 第一次打开后台,设置一个管理员密码就能开始写;
- 想用自己的域名,在 Cloudflare 后台绑一下即可。
不需要买服务器,不需要装 Node,也不需要手动跑数据库迁移——首次访问自动建表,已有的老库则原样保留。
为什么自己写
博客程序很多,但我想要的东西一直凑不齐:要有随手发的轻松感,也要有长文的仪式感;数据要完全在自己手里;页面要快、手机上看着要舒服。
与其在各种程序之间来回迁移、缝缝补补,不如照着自己的习惯写一个。写了几个月,功能随着真实使用一个个长出来——这篇文章里提到的每个特性,几乎都是自己用着用着觉得「这里该有一个」才加上的。
现在它对我来说已经足够顺手,也希望对你有用。欢迎 Star、提 Issue,或者直接部署一个,开始记录自己的生活。
开源地址:<https://github.com/mliae/moments>

评论27