star 是注意力,维护是成本,收入是另一件事。三件事要分开算。
这个系列解决什么问题
一个人把一个开源项目做到有几千个 star 之后,问题会突然变多:许可证该选哪个、哪部分该闭源、issue 该不该回、依赖告警要不要马上修、赞助怎么收、有人要商业许可怎么报、自己不想做了怎么办。这些问题没有一个是技术难题,但每一个都能让项目停摆。
这个系列不复述许可证的条文,也不讨论开源运动的意义。它讲的是一个人在 4,200 个 star、1,949 美元月收入与每年 612 小时维护之间,怎么把账算清、把边界画对、把响应变成流程、把退出写成清单。
它服务的是一个没有法务、没有社区经理、也没有第二位维护者的人。 你能投入的不是一套治理章程,而是一张依赖清单、一份 issue 模板、一条 72 小时承诺、一页赞助说明和一份归档清单。
核心主张:五条口径
- 开源是分发,不是收入。 4,200 个 star 只换来 23 个赞助者,0.55% 的转化;收入结构要单独设计。
- 边界画在责任上,不画在代码重要性上。 用户跑得起来的部分开源,需要你持续在场的部分闭源。
- 维护成本以时间计,不以服务器计。 612 小时占全年 31.9%,这是这个项目真正的成本。
- 响应是流程,不是态度。 72 小时首响、四层标签、六类关闭原因,都比「我尽量快」有效。
- 退出要提前写。 发版单点、归档六件套与继任说明,是项目对自己最后的负责。
10 篇速览
| # | 文章 | 核心内容 | 阶段 |
|---|---|---|---|
| 01 | 开源不是商业模式:五条收入路径与一张 1,949 美元的收入表 | 5 条路径、612 h、38.2/32.1 美元/h、0.55% | 判断 |
| 02 | 许可证选择:四个问题、214 个直接依赖与 12 个 copyleft | 4 问、214 依赖、12 copyleft、5 不明 | 合规 |
| 03 | Open Core 边界:78% 的代码开源,22% 才收费 | 48,600 行、78.0%/22.0%、93.9% 动机 | 边界 |
| 04 | 维护者的时间账:1,180 个 issue、148 个 PR 与 612 小时 | 7 类、34.3%、11.8 h/周、超支 27.5% | 产能 |
| 05 | Issue 分类:10.7 分钟一个、72 小时首响与 134 个遗留 | 1,180/1,046/134、4 层标签、8.4% 超时 | 队列 |
| 06 | 依赖与安全:214 条告警、11 条高危与三次安全公告 | 214 告警、11 高危、4.2 天、3 次公告 | 安全 |
| 07 | 赞助之门:4,200 个 star 里的 23 个人与两家公司 | 23 人、129/200、0.55%、流失 25.8% | 资金 |
| 08 | 双许可与企业版:九家询价、两家成交与 4,800 美元 | 9→2、22.2%、4,800、14 份 CLA | 合同 |
| 09 | 治理、fork 与退出:17 位贡献者、82% 的提交与一次改协议的代价 | 1,342/1,637、bus factor 1、fork +34.1% | 治理 |
| 10 | 开源项目验收:十项能力、四维评分与三种不该开源的项目 | 10 项、3.47 分、三种不该开源 | 验收 |
三条阅读路径
路径 A:刚有第一个付费用户。 先读 01 把五条收入路径与净时薪算清,再读 02 把依赖的许可证看一遍,最后用 03 决定哪部分闭源。这条路径的重点是「先把账和边界立住」。
路径 B:issue 区开始失控。 先读 04 找出时间花在哪,再读 05 建四层标签与 72 小时首响,最后用 06 把依赖告警变成季度窗口。这条路径的重点是「把随机的打断变成可预期的队列」。
路径 C:想靠开源养活自己。 先读 07 把赞助页与档位做完,再读 08 判断双许可是否成立,最后用 10 做一次四维评分。这条路径的重点是「先补最短的板,再谈增长」。
与其它专题的边界
站内已有获客、平台合规、社区、财务与安全内容,但都不处理「一个人怎么把一个开源项目经营下去」。下表说明本组不重复什么。
| 既有内容 | 它讲什么 | 本组边界 |
|---|---|---|
| 一个人让产品被看见:十条获客路径 | 渠道打分、目录站、搜索入口与开源仓库作为入口 | 它管仓库怎么带来访问;本组管仓库怎么维护、怎么收费 |
| 一个人的社区:冷启动、版规、版主与社群健康 | 社群载体、版规、版主与内容节奏 | 它管用户社群;本组管代码仓库的贡献者与 issue |
| 独立开发者的平台寄生 | 平台上架、分成与平台内增长 | 它管平台渠道;本组管自有仓库的分发与许可 |
| 一个人的公司:主体、税务与合规 | 主体、税务、合同与知识产权 | 它管法定口径;本组管许可证、CLA 与商业许可边界 |
| 一个人的财务:现金流、runway 与月度结账 | 四张表、runway、税预提与月结 | 它管整体现金;本组管开源项目的收入结构与维护时薪 |
| 一个人的企业客户:九家询价、一百四十八道问卷与 134 天的第一单 | 采购流程、问卷、DPA 与 SLA | 它管按席位卖产品;本组管卖许可证豁免与赞助 |
| 一个人的安全基线:十四个入口、十七个密钥与一次 72 小时响应 | 攻击面、密钥、边界与响应 | 它管自身系统;本组管依赖告警与对外披露 |
| 一个人的运维:可用性、告警、事故与值班 | 探针、告警、状态页与事故复盘 | 它管托管服务的可用性;本组管仓库侧的维护节奏 |
| 一个人的自助支持:帮助中心、排查树与工单减少 | 帮助中心、FAQ 与模板答复 | 它管产品支持;本组管 issue 分类与首响 |
| 一个人的质量守门:验证预算、回归清单与发布门禁 | 关键路径、回归与发布门禁 | 它管功能对不对;本组管发版节奏与 changelog |
| 一个人的借力:外包、自动化与协作边界 | 外包、自动化与最小权限 | 它管把活交出去;本组管把仓库权限交出去 |
| 一个人的产品线:第二个产品与组合运营 | 第二产品、共享底座与退出 | 它管多产品;本组管单仓库的边界与继承 |
这十篇不提供法律意见,不评价任何许可证的优劣,也不承诺「照做就能靠开源养活自己」。可复算的部分全部用四则运算给出算式;不可复算的部分(社区情绪、企业采购习惯、维护者精力)明确标为观察值与教学假设。
本组统一口径
全组共用一组教学假设,各篇引用时不换分母:
产品:一人维护的开源同步 CLI + 闭源托管服务
Star 4,200;月下载 18,000;月活安装 2,400
托管付费 180 × 9 = 1,620/月
个人赞助 23 人 = 12×3 + 8×6 + 3×15 = 129/月
企业赞助 2 家 × 100 = 200/月
收入合计 1,949/月 = 23,388/年
成本 309.8/月 = 服务器 210 + 邮件监控 35 + 支付通道 4%×1,620 = 64.8
净收入 1,639.2/月 = 19,670.4/年
维护 612 h/年 = 51 h/月 = issue 210 + PR 96 + 安全依赖 74 + 发版 58 + 文档 92 + 问答 62 + 商务 20
毛时薪 1,949 ÷ 51 = 38.2 美元/h;净时薪 1,639.2 ÷ 51 = 32.1 美元/h
Issue:新开 1,180,关闭 1,046(人工 834 + 机器人 212),遗留 134
分类 210 h ÷ 1,180 = 10.7 分钟/个;中位首响 26 h,p90 71 h,超 72 h 99 个 = 8.4%
PR:外部 148,合并 61 = 41.2%;148 × 39 分钟 = 96.2 h
依赖:214 个直接依赖 = 197 宽松(92.1%)+ 12 copyleft(5.6%)+ 5 不明(2.3%)
告警:214 条 = 高危 11 + 中危 63 + 低危 140;加权均值 4.2 天;安全工时 74 h
发版 26 次/年 × 2.2 h = 57.2 h;文档 92 h,文档 PR 44
代码 48,600 行 = 37,900 开源(78.0%)+ 10,700 闭源(22.0%)
付费动机 169 托管(93.9%)+ 11 支持(6.1%)
贡献者 17 人、提交 1,637 次;前 3 人 1,342(82.0%);bus factor = 1
双许可:9 家询价 → 2 家成交 × 2,400 = 4,800/年(占 20.5%)
转化:23 ÷ 4,200 = 0.55%;180 ÷ 18,000 = 1.0%
612 小时是维护成本,不是全部工时。 它占全年 1,920 小时的 31.9%,相当于 15.3 周;把它当成「顺手维护」,会持续低估这个项目的真实负担。
1,949 美元是月收入,不是利润。 扣掉 309.8 美元直接成本后是 1,639.2 美元;再扣税费与退款,才是能花的钱。
4,200 个 star 不构成任何承诺。 它只说明有多少人点过一次按钮;23 个赞助者与 180 个付费账号才是可复算的部分。
使用说明
先分清分发与收入。 star、下载、issue 是分发信号;托管、赞助、双许可是收入路径。两组数字要分开记,混在一起会得出错误结论。
先把边界画在责任上。 用户跑得起来的部分开源,需要你持续在场的部分闭源;边界定了,定价与支持才有依据。
先把响应变成流程。 四层标签、72 小时首响、六类关闭原因;流程比态度稳定,也比态度可交接。
先写退出。 发版单点、归档六件套、继任说明;项目可以停,但不能烂在那里。
本组的证据与使用方法
证据类型。 本组用的是「4,200 star 与 18,000 下载的漏斗 + 1,949 美元的收入表 + 612 小时的时间记录 + 214 个依赖的许可清单 + 214 条告警与三次公告 + 23 个赞助者与两家企业 + 九家双许可询价 + 1,637 次提交的分布」。没有「最佳实践」式的断言。
如何使用。 先用 01 把收入与时间算清,再用 02 与 03 把许可证和边界立住;日常用 04 与 05 管住队列,用 06 管住依赖;想收钱时读 07 与 08,想退出时读 09,季度复盘用 10。
如何复核。 取最近一个月:看有没有五栏收入、有没有依赖许可清单、有没有四层标签、有没有 72 小时首响记录、有没有归档清单。五项都能对上,这套基线才适用。