构建 VMark 要花多少钱?
太长不看版
VMark 拥有约 109,000 行生产代码和 206,000 行测试代码,涵盖 TypeScript、Rust、CSS 和 Vue。一个人工团队从零构建需要 4,239 个开发人日(约 17 人年)。按美国市场费率计算,这意味着 340 万至 420 万美元。而它实际上由一个人借助 AI 辅助,在 85 个日历日内完成,成本约为 2,000 美元——生产力提升约 50 倍,成本降低约 99.9%。
为什么有这个页面
一个问题反复出现:"VMark 到底花了多大力气?"
这不是营销页面。这是一份透明的、数据驱动的分析,使用真实的代码指标——不是凭感觉。这里的每个数字都来自 tokei(代码行统计)、git log(历史记录)和 vitest(测试计数)。你可以自行克隆仓库来复现这些数字。
原始指标
| 指标 | 数值 |
|---|---|
| 生产代码(前端 TS/TSX) | 85,306 LOC |
| 生产代码(Rust 后端) | 10,328 LOC |
| 生产代码(MCP 服务器) | 4,627 LOC |
| 生产 CSS | 8,779 LOC |
| i18n 语言数据 | 10,130 LOC |
| 网站(Vue + TS + 文档) | 4,421 LOC + 75,930 行文档 |
| 测试代码 | 206,077 LOC(656 个文件) |
| 测试数量 | 17,255 个测试 |
| 文档 | 75,930 行(320 页,10 种语言) |
| 提交次数 | 84 个活跃日内 1,993 次 |
| 日历时间 | 85 天(2025 年 12 月 27 日至 2026 年 3 月 21 日) |
| 贡献者 | 2 人(1 人 + AI) |
| 变动比率 | 3.7 倍(123 万次插入 / 33 万最终行数) |
| 测试与生产比 | 2.06:1 |
这些数字意味着什么
- 测试与生产比 2.06:1 非常卓越。大多数开源项目在 0.3:1 左右。VMark 的测试代码是生产代码的两倍。
- 变动比率 3.7 倍意味着最终代码库中的每一行,总共写了 3.7 行(包括重写、重构和删除的代码)。这表明经历了大量迭代——不是"写一次就发布"。
- 84 个活跃日内 1,993 次提交,平均每天约 24 次提交。AI 辅助开发会产生大量小型、聚焦的提交。
复杂度分层
并非所有代码都是一样的。一行配置解析代码和一行 ProseMirror 插件代码的工作量完全不同。我们将代码库分为四个复杂度层级:
| 层级 | 包含内容 | LOC | 速率(LOC/天) |
|---|---|---|---|
| 常规(1.0 倍) | i18n JSON、CSS Token、页面布局、设置 UI | 23,000 | 150 |
| 标准(1.5 倍) | Store、Hook、组件、MCP 桥接、导出、Rust 命令、网站 | 52,000 | 100 |
| 复杂(2.5 倍) | ProseMirror/Tiptap 插件(多光标、专注模式、代码预览、表格 UI、IME 防护)、CodeMirror 集成、Rust AI 服务商、MCP 服务器 | 30,000 | 50 |
| 研究(4.0 倍) | CJK 排版引擎、组合输入防护系统、具备 IME 感知的自动配对 | 4,000 | 25 |
"LOC/天"速率假设一位高级开发者编写经过测试和审查的代码——不是未审查的原始输出。
为什么编辑器插件这么贵
VMark 中单项成本最高的部分是 ProseMirror/Tiptap 插件层——34,859 行代码,管理文本选择、文档事务、节点视图和 IME 组合输入。这被普遍认为是 Web 开发中最困难的领域:
- 你操作的是文档模型,而不是组件树
- 每次编辑都是一个必须保持文档完整性的事务
- IME 组合输入(用于 CJK 输入)增加了一整套并行状态机
- 多光标需要同时追踪 N 个独立选区
- 撤销/重做必须在上述所有情况下正确工作
这就是为什么插件层被归类为"复杂"(2.5 倍乘数),而 CJK/IME 代码被归类为"研究"(4.0 倍)。
工作量估算
| 组件 | LOC | 开发人日 |
|---|---|---|
| 第 1 层生产代码(常规) | 23,000 | 153 |
| 第 2 层生产代码(标准) | 52,000 | 520 |
| 第 3 层生产代码(复杂) | 30,000 | 600 |
| 第 4 层生产代码(研究) | 4,000 | 160 |
| 测试代码 | 206,077 | 1,374 |
| 文档(10 种语言) | 75,930 | 380 |
| 小计 | 3,187 | |
| 开销(设计 5% + CI 3% + 审查 10%) | 574 | |
| 变动税(3.7 倍 → +15%) | 478 | |
| 总计 | 4,239 开发人日 |
这大约是 17 人年的全职高级工程工作量。
关于测试工作量的说明
测试套件(206K LOC,17,255 个测试)占 1,374 开发人日——超过总工作量的三分之一。这是项目测试优先纪律的代价。没有它,项目构建成本会便宜约 40%,但维护难度会显著增加。
成本估算
使用美国市场费率(全部成本——工资 + 福利 + 间接费用):
| 场景 | 团队 | 时长 | 成本 |
|---|---|---|---|
| 单人高级开发($800/天) | 1 人 | 17.7 年 | $3.39M |
| 小型团队(平均 $900/天) | 3 人 | 2.3 年 | $3.82M |
| 完整团队(平均 $1,000/天) | 5 人 | 10.6 个月 | $4.24M |
团队规模不是线性增长的。一个 5 人团队的生产力大约是 1 个人的 4 倍(不是 5 倍),因为沟通开销——这就是布鲁克斯法则的体现。
AI 的真实情况
| 指标 | 数值 |
|---|---|
| 实际日历时间 | 85 天(12 周) |
| 人工等价 | 4,239 开发人日(约 17 人年) |
| 生产力倍数 | 约 50 倍 |
| 估计实际成本 | 约 $2,000(Claude Max 订阅) |
| 人工等价成本(单人) | $3.39M |
| 成本降低 | 约 99.9% |
50 倍乘数意味着什么
这不意味着"AI 比人类聪明 50 倍"。它意味着:
- AI 不需要上下文切换。 它能将整个代码库保持在记忆中,同时对 10 个文件进行修改。
- AI 以生产速度编写测试。 对人类来说,编写 17,255 个测试是令人崩溃的苦差事。对 AI 来说,只是更多的代码。
- AI 瞬间处理样板代码。 10 种语言的翻译层(10,130 LOC 的 JSON + 320 页文档)会让人工团队花费数周。AI 只需几分钟。
- AI 不会感到无聊。 那 656 个覆盖边界情况、IME 组合输入和 CJK 排版的测试文件,恰恰是人类会跳过的工作。
人类的角色是判断——构建什么、何时停止、选择哪种方案。AI 的角色是劳动——编写、测试、调试、翻译。
市场对比
| 维度 | VMark | Typora | Zettlr | Mark Text |
|---|---|---|---|---|
| 核心功能 | Markdown 所见即所得 + 源码模式 | Markdown 所见即所得 | 学术 Markdown | Markdown 所见即所得 |
| LOC(估计) | 约 109K 生产代码 | 约 200K(闭源) | 约 80K | 约 120K |
| 贡献者 | 2 人(1 人 + AI) | 1-2 人(闭源) | 约 50 人 | 约 100 人 |
| 年龄 | 3 个月 | 8 年以上 | 6 年以上 | 6 年以上 |
| 价格 | 免费(测试版) | $15 授权 | 免费 / 开源 | 免费 / 开源 |
| 核心差异 | Tauri 原生、MCP AI、CJK 原生、多光标 | 打磨度高、PDF 导出 | Zettelkasten、引用管理 | Electron、成熟稳定 |
这个对比说明了什么
VMark 在 85 天内达到了其他项目用 6 至 8 年、50 至 100 位贡献者才达到的同等代码规模和功能集。测试纪律(17K 测试,2:1 比率)超过了本次对比中的所有开源 Markdown 编辑器。
这并不是因为 VMark "更好"——它更年轻,经受的实战检验更少。但它证明了 AI 辅助开发的可能性:一个人可以产出以前需要一个资助团队才能完成的成果。
是什么让 VMark 构建成本高昂
三个因素驱动了成本:
编辑器插件复杂度——34,859 行 ProseMirror 插件代码,涉及选区、事务、节点视图和 IME 组合输入。这是第 3/4 层代码,一位资深编辑器框架专家的编写速度约为每天 50 LOC。
极端的测试纪律——2.06:1 的测试与生产比意味着仅测试代码(206K LOC)就比生产代码需要更多的工作量。这是一项有意为之的投资——它让 AI 辅助开发可持续。
10 种语言的完整国际化——320 页文档、80 个语言 JSON 文件和一个完整的本地化网站。这是通常只在资助的商业产品中才能看到的运营规模,而非个人项目。
复现这些数字
所有指标都可以从公共仓库复现:
# 克隆并安装
git clone https://github.com/xiaolai/vmark.git
cd vmark && pnpm install
# LOC 指标(需要 tokei:brew install tokei)
tokei --exclude node_modules --exclude dist .
# Git 历史
git log --oneline | wc -l
git log --format='%ai' | awk '{print $1}' | sort -u | wc -l
# 测试数量
pnpm vitest run src/ 2>&1 | tail -5方法论
本分析中使用的生产力基线(LOC/天速率)是针对高级开发者编写经过测试和审查的代码的行业标准估算。这些数据来自软件估算文献(McConnell、Capers Jones),并针对生产级质量的输出进行了校准——而非原型或概念验证代码。