2026-05-13 16:37:44
好吧,为了更爽地写博客,我居然做了一个开源博客系统:Jant 🫡
已经用了一段时间了(旧博客放在这里),目前基本没遇到什么问题,所以我把主站域名也切换到目前的 Jant 博客。关于 Jant 本身的介绍可以看这里,对我自己来说,我也把 Jant 看成是之前想像的公开笔记 Everentry 的实现。
我一直相信练习写作需要公开表达,只有这样,才能让自己的思考变得清晰。但是对我来说,如果每条新内容都要推送给 RSS 订阅者,发布的心理门槛就会提高很多,最后要么不写要么无限推迟。
所以 Jant 想解决的核心问题其实就是:降低发布摩擦力,用精心设计的机制鼓励用户多写多发。主要是通过以下 3 种设计:
采用现代 UI,用类似 Threads/Twitter 的方式发帖,支持 Thread,把多个帖子串起来,我还加了一些常见的快捷键支持,比如任何页面按下 n,就是新建cmd+k 搜索,编辑器是 Markdown 编辑器,用 / 可以唤出快捷命令,光标在帖子上,按下 e 是编辑帖子,按下 f 是添加到 featured, 按下 c 是编辑合集。
Note、Link、Quote 格式 + 媒体附件都是一等公民。我博客里一半以上的内容都是 Link 和 Quote,把它们做成原生格式更能鼓励作者经常发布——Tumblr 十几年前就发现了这一点,但不知道为什么没有其他博客系统真正跟进。我自己用了 Jant 一个月之后,发的图片和视频比过去一年加起来还多。
支持 Hidden from Latest,没做出来之前,我都没想过这个小小的选项对于公开写作有多大的好处。它的原理是,发布帖子,但是不出现在首页和 RSS,它会出现在合集和 /archive 页面,比如我把 Now 设置为一个合集,里面会发一些生活记录之类的东西,这个我就不愿意在首页的 Latest 中展示。顺便还做了一个设计,解决了 Now 的可发现性,把 Now 添加到首页的 Header 导航栏中,如果 48 小时内 Now 合集有更新,那么旁边会有一个 * 标识(这个对所有的合集都成立)。 /archive 页面则是所有的帖子汇总。

在 Jant 之前,我的博客一直使用静态博客(Markdown 文件写、生成 HTML 发布)。这种方式的好处是,内容是明文 Markdown,这是一种真正通用、长期的格式,不绑定任何具体工具,可以预期一百年后用一个最简单的文本编辑器打开,照样能读。但坏处是发布摩擦太大,每次写文章,都要打开编辑器,新建文件(起名和标题是最大的摩擦),写 frontmatter,写正文,然后 git commit & push,等部署完才能看到效果。所以我之前分享链接都是凑好多个才敢发一次。
所以其实我的痛点是我想既要又要,既想发布方便,又想保有某种长期格式。我给 Jant 设计了自动同步的 GitHub Sync 解决了这个问题。Jant 博客可以生成一个完整的 Hugo 站点,每次在 Jant 发帖都会自动同步到 Github Repo,这里是一个示例 Repo。它既是备份,也是一份完整的,可以独立运行的静态博客。
最后一点就是开源。这其实是延续了上面那条"长期格式"的逻辑——内容用 Markdown 是为了不被工具绑架,那运行这些内容的系统,理应也不被任何公司绑架。
Jant 完全开源(AGPL-3.0),完整的源代码在这里,可以一键部署到 Cloudflare Workers,或者通过 Docker 部署到自己的服务器。
如果你选择 Cloudflare,个人博客的流量基本都在 Cloudflare 的免费额度内,也就是说,我们可以接近零成本运行一个完全属于自己的博客。钱其实也是一种摩擦,一个要用很多年的东西,必须考虑它的长期成本,这也是我之前选择静态博客的原因之一。
不过,自己部署本身也是一种摩擦😂,所以我最后还是给 Jant 做了一个一键注册的host 选项, 价格是 $10.46/年,这个数字刚好是 Cloudflare 提供的 .com 域名注册和续费的价格。略高于免费,又足够正式。而且还 Callback 了我几年前发布的一个短想法 :
目前来看,我发现.com 的域名价格很舒服。一年 69 块左右。应该按照这个定价来卖东西。
至此,Jant 基本解决了我对个人博客的所有想像,我也很高兴能制作这种自己会长期使用的工具,如果你也需要这样一个工具,可以从 快速使用文档 这里立刻开始。或者可以看看这篇 为什么要写博客 。
文末彩蛋:在Jant 托管的版本里,结账的时候使用 `EARLYJANT`,可以免费一年,10 个,先到先得。
目前,Jant 应该只有我一个用户,所以使用的时候如果遇到一些我没有测出来的问题,请多多反馈,我刚也创建了一个 Telegram 和微信的早期群,也可以通过Github Issues, 或者邮件 [email protected] 反馈。

写文章的此刻,我正在布拉格玩,写完之后我就要出门玩了,想起了之前发过的一个 Quote:
重新设计的 Fark 网站现已上线。希望什么都没有坏,我们都出去喝酒了(fark.com)
祝你使用愉快!
2026-05-06 03:58:54
Hacker News 上分享老文章时有个惯例:标题末尾会标注年份,例如 (1990),这个网站把所有符合这种格式、得分 ≥ 4 的 HN 提交收集起来,从 1900–2025 年,按年份归档。
从这个项目改造而来,改为按年份排序,并且翻译了一下标题,这样阅读起来别有一番风味,比如你会看到 1912 年卫报的报道《泰坦尼克号沉没》,源码在这里。


2026-04-13 16:17:49
写作可以帮助你约束自己的思想。很多时候,只有当你把想法写在纸上时,看似严密的论证中的逻辑漏洞或无知之处才会显现出来。(反之亦然,不动笔的思考往往会变得马虎。
写下你学到的东西。它能促使你更好地理解主题。有时,只有在向他人解释时,我们的知识缺口才会变得清晰。
撰写所学内容不仅是一种记录方法,还是加深理解、揭示知识差距的有力工具。这种做法促使我们更深入地探索主题,并以连贯、准确的方式表达自己的想法。
拥抱细节–在写作中要具体、实在、实在。
开始讲述只有你能讲述的故事–它们承载着你独特的视角。
— Natalie Goldberg
请记住,你的大部分想法都会是糟糕的;这是产生好想法的过程的一部分。
— Neil Gaiman
为了有效地写作,你需要一个属于自己的房间–无论是字面意义上的还是隐喻意义上的。
— 弗吉尼亚·伍尔夫
接触你周围的世界–你的经历、观察和反应可以为你的写作提供素材。
— Zadie Smith
用残酷的诚实书写个人的悲伤和创伤。
— Joan Didion
将写作作为了解个人经历的一种方式。
— Joan Didion
如果你写的是你自己真诚的想法、感受和感兴趣的东西……你就会引起其他人的兴趣
— Rachel Carson
2025-10-30 23:52:39
一般化的陷阱在生活中很常见。比如“老师都怎样怎样”“男生(女生)都是某某”“日本人就是某种人”这类说法,都是把自己有限的经验套用到所有人身上。 读书的意义之一,就是帮助我们跳出这种狭隘的经验。通过了解更广阔的世界,我们能更容易避免这种轻率的概括。前文提到的社团教练,如果多读一些运动指导的研究,也许就不会轻易把个人经验当成普遍真理。 当然,读书多了也可能让人陷入另一种一般化陷阱——以为自己懂得很多。其实,那些知识可能只是零散、浅层的。读书时,我们要提醒自己:别把碎片化的知识当成放之四海皆准的真理。 正如苏格拉底所说:“我只知道我一无所知。”
— 《为什么要读书》