我写 Quail 是一个意外:

An image to describe post

我本来只是想写 Newsletter,但是现在不但在写 Newsletter, 还在写了一个 Newsletter 服务。

从 4 月 18 号动了这个念头,到 4 月 24 号第一个版本上线,到 6 月 17 号开始做 closed beta,到 7 月 4 号开放注册,刚好 11 个周末。去掉 Diablo 4 占用的一个周末,也就是 10 个周末我在写 Quail,目前交付的情况就是现在能看到的:

  1. 一个网站 https://quail.ink
  2. 一个文档 https://docs.quail.ink

目前有 1380 位朋友注册或者订阅了 Quail,分别订阅于 16 个不同的作者。而参与内测的作者们写了 88 篇文章,被 27000 多人访问,8000 多人阅读。

要特别感谢 orangeyishigoldengrape,他们在 Quail 很早期就深度参与了体验和测试,帮我找到了很多问题,并且提出了很多好建议,在此特别表示感谢。

orange 是资深产品经理,最近在 AI 方面创业。他的 Newsletter 目前主要是分享他对产品和人性的思考。yishi 是 OneKey 的创始人。他的 Newsletter 目前分享和加密货币相关的内容。goldengrape 虽然是一名眼科医生,但他的配置超过了医生。他的 Newsletter 目前分享眼科和程序设计的内容。

各位读者看到这里时,也可以点击他们的名字,访问他们在 Quail 上的列表然后订阅。如果他们提供了高级会员计划,如果你对他们的内容感兴趣,并且愿意支持他们的创作,在他们的页面右上角,点击「会员」订阅高级会员。

感觉有点慢?

明明从开始做到上线只用了 6 天,那为什么到现在开放注册用了快两个月呢?

哈,因为做一个玩具容易,做一个产品难。程序员做一个玩具自己用,自己很清楚哪里能碰哪里不能碰;做给大家用的产品就不一样了,要考虑很多很多东西。

Quail 能干啥

按照最初的设计意图,如果你是个作者,可以把它当一个 newsletter,也可以当一个 blog,或者用它来写书,都可以。

如果你个读者,那么你可以忽略 Quail 本身,而把注意力放在内容上,比如可以在发现页浏览一下,找一找有没有想订阅的作者。

Quail 的功能

最早 Quail 是为我一个人做的。

然后我的朋友开始使用它了,Quail 也为我的朋友们提供一个创作的地方。

即使后来有了其他新作者来用它,它的设计初衷依然没有变化,始终会尝试给创作者更好的创作体验。

接下来主要从创作者的视角来介绍一下 Quail 的功能,以及为什么要这样设计。

Markdown 原生支持

很多人喜欢可见即可得的编辑器,也有很多人喜欢用其他标记型语言来写作,但我依然觉得 Markdown 是目前最好的选择。

虽然,Markdown 自己有很多问题,比如标准不统一、扩展力不强、有一点点学习门槛。但是它依然是被接受最广的写作标记语言。

这个世界就是这样,很多时候最优雅的东西不一定是最受欢迎的。比如 Unix vs Lisp Machine,Linux vs BSD,C vs Lisp,Javascript vs others ... 就像一个人如果没有缺点,大家可能会非常尊敬他,但不会在请客吃饭、露营钓鱼、喝下午茶的时候邀请他。真实的人虽然有缺陷,但如果呆在他身边能舒舒服服的,那才能成为好朋友。

Markdown 就是一个虽然有缺陷,但是只要你用它写作了,就会感到舒舒服服的工具。所以 Quail 能支持它真是太好了。

从本地编辑器直接发文

大部分内容发布系统都通过一个网页、或者一个客户端来发布新内容。Quail 当然也有自己的 Web 编辑器,作者可以在登录到「仪表盘」来编辑和发表文章。

在此之外,作者也可以通过本地的 Markdown 编辑器来发文。由于我日常使用 Obsidian,因此 Obsidian 是首先得到支持的编辑器。

日常,我几乎所有的内容都通过 Obsidian 来撰写,本文也不例外。本地编辑器提供了作者最熟悉的创作环境。而且专业的编辑器无论在使用体验、习惯、还是功能,都完胜网站上的在线编辑器。

因此,对于我来说,在 Obsidian 里直接完成「撰写 → 发布 → 投递到订阅者」一条龙服务,是最好的,Quail 提供的 Obsidian 插件就做到了,并且还顺便支持用 AI 生成文章摘要、关键字等等信息。

当然了,我用 Obsidian,其他人不一定用。所以在计划中,我也会添加其他编辑器的支持(例如 VSCode)。另外,能达成这些也是因为 Quail 提供了一套 API,任何开发者都可以在自己喜欢的编辑器(比如 Emacs,VIM)里添加对 Quail 的支持。

SEO 和网站性能

Quail 从设计之初就考虑到了 SEO 所关心的所有因素,去实现他们,然后以开箱即用的方式提供给创作者。

这些内容包括典型的 SEO 技术实现,比如:站点地图、Atom Feed、元信息等等。也包括典型的 SEO 策略实现,比如:如何给文章计算评分然后投递给搜索引擎等等。Quail 的作者不需要关心这些繁琐细节,Quail 会自动地完成这些工作。

另一项工作是关于 Quail 的基础性能,比如加载速度、响应速度等等,属于直接影响用户体验的部分。这是长期工作,很多事务非常琐碎,做起来很麻烦。有的性能改进虽然细微,但是非常贵。我会权衡投入产出,尽可能地提供最好的性能。

尽可能提供最好的代码支持

代码是在这个世界表达的很重要的一部分。就是说,对于文章里包含代码的,需要非常好地支持才行。比如代码高亮,就像下面这段:

int main() {
	printf("Hello\n");
	return 0;
}

除此之外,我还计划集成一些有用的第三方服务,比如 play.golang.org,比如 codepen。这样代码能显示出来,也能跑起来。

数学公式和绘图

这是另两个需要重点支持的功能。

科学写作经常需要插入数学公式,就像下面这样:

\[\mathbb{E}(X) = \int x d F(x) = \left\{ \begin{aligned} \sum_x x f(x) \; & \text{ if } X \text{ is discrete} \\ \int x f(x) dx \; & \text{ if } X \text{ is continuous } \end{aligned} \right. \]

工程写作经常需要插入绘图,就像下面这样:

sequenceDiagram
    Alice ->> Smith: Hello Smith, how are you?
    Smith-->>John: How about you John?
    Smith--x Alice: I am good thanks!
    Smith-x John: I am good thanks!
    Note right of John: Smith thinks a long<br/>long time, so long<br/>that the text does<br/>not fit on a row.
    Smith-->Alice: Checking with John...
    Alice->John: Yes... John, how are you?

对于科学和工程写作来说,必须包含公式和绘图,内容才是完整的。因此 Quail 也需要原生支持它们。

在 Quail 中,输入公式使用的是 Mathjax 语法;绘图使用的是 Mermaid.js。它们都是成熟可靠的实现,可以放心使用。

目前,Quail 依赖第三方库,给予公式和绘图基础的支持,Email 里还用不了。未来会继续改进。

会员订阅和支付

即使信息是免费的,但知识不是。所以,创作者当然可以给他的作品定价。付费也是一种读者们支持创作的方式。在好的经济利益的驱动下,创作可以更好持续进行。

Quail 拥抱经济自由,因此一开始就通过 MixPay 支持 Cryptocurrency 支付。如果一旦接受这种设定,你会发现这种一种极端便利的方式,便利程度堪比现金。

当然,Quail 也有计划要支持法定货币,例如 Paypal,信用卡等等。但是考虑到法币系统的复杂性,这个功能会在后续再添加。

对于所有会员收入,Quail 会拿走支付金额的 10% 用于维持运营。这也是 Quail 的商业模式,非常简单。

自定义域名和其他个性化

最个性化的做法是自己搭建一个网站,然后 self-hosting 一个 Quail。但并不是所有人都有这个能力,或者精力去做这件事情。

所以 Quail 的 SaaS 版本,也就是现在你看到的 https://quail.ink ,未来会提供绑定自定义域名的功能。这样,作者可以在自己的域名下发布内容,而不是在 Quail 的域名下发布内容。对有自我品牌意识的作者来说,这是非常重要的。

AI

虽然这一代 LLM 的能力就是产生内容,但目前我不觉得一个好的作者会把创造的主体直接交给 AI。总之我会谨慎地考虑 AI 的使用场景。

评论和社交

确实有计划延展 Quail 在社交上的功能,因为我觉得交流对于写作和阅读来说都挺有价值的。但具体要怎么做我还在想。

阅读体验

上面说的大部分都是关于写作的,但读者才是所有内容的最终消费者。因此阅读体验也需要仔细雕凿。现在 Quail 的阅读体验还有一些问题,会在后面的版本中逐步改进。

去中心化

有这样的计划,不过届时要看两个因素:

  1. 有多少人会愿意去 self-hosting Quail 实例
  2. 有多少人愿意加入 Quail 的去中心化网络

我觉得这可能涉及到内容经济模型和社交,因此这个计划会放在社交之后。

开发者支持和开源

最后是开发者相关的内容。在用 Obsidian 写文章的作者可能已经发现了,Quail 从一开始就提供了 API Key。第三方开发者可以通过这个 API Key 来访问 Quail 的内容。我也希望有开发者可以用这些 API 为更多的编辑器编写插件来提供 Quail 的支持。

关于开源,Quail 一开始就宣布要开源的,但是需要等一等。前些时间都在做功能开发,现在无论是代码的质量、还是文档的质量都还没到开源的程度。等我准备好了,会把代码开源,并提供完整的 self-hosting 文档和如何参与开发的指引。

未来计划

首先,Quail 是一个长期项目,会一直迭代。
其次,Quail 会保持与作者和读者站在一起的立场,这是不会动摇的原则。
最后,会去探索 Quail 的商业化。

但是就目前的情况,Quail 还处于一个非常初级的阶段,请大家多多关照了,也欢迎加入 Quail 在 Discord 上的社群