首页技术专题博客目录关于与联系

开源项目维护一年后,我后悔了

做开源项目一年,star 1.2万,但快被 issue 和 PR 淹没了。分享维护开源项目的真实体验。

去年8月,我在 GitHub 上开源了一个项目。一年后,项目有了 1.2 万 star,但我快撑不下去了。

这篇文章不是劝你不要做开源,而是分享开源项目维护的真实体验。

最开始的兴奋

项目刚开源时,我很兴奋:

  • 第一天就有100个 star
  • 有人提 issue 说"这个项目太棒了"
  • 有人提 PR 修 bug
  • Twitter 上也有人讨论

那种被认可的感觉,真的很爽。

我每天下班后都会花2-3小时回复 issue、review PR、写文档。虽然累,但很有成就感。

三个月后,问题来了

1. Issue 越来越多

项目火了之后,issue 暴涨:

  • 有人问"怎么安装?"(文档写得很清楚了)
  • 有人问"支持 XX 框架吗?"(不支持)
  • 有人说"这个功能能不能加?"(功能清单已经很长了)
  • 有人抱怨"为什么不支持 XX?"(因为我没时间)

每天打开 GitHub,都有十几个未读通知。

2. PR 质量参差不齐

有人提 PR 是好事,但很多 PR 质量不高:

  • 没有测试
  • 代码风格不统一
  • 功能不完整
  • 甚至改出了 bug

我要么直接拒绝(得罪人),要么自己改(累死自己)。

3. 用户的期待越来越高

项目刚开源时,大家都很宽容。现在,用户把它当成商业软件了:

  • "这个 bug 什么时候修?"
  • "能不能加个 XX 功能?下周就要用。"
  • "文档写得太烂了。"

有个 issue 甚至说:"作为一个 1.2 万 star 的项目,这个 bug 不应该存在。"

我tm是免费维护的啊!

六个月后,开始疲惫

项目已经不是我的了,是"社区"的。

每次我想加个新功能,都会有人反对:

  • "这个功能不符合项目定位"
  • "这样改会 breaking change"
  • "建议先讨论一下"

讨论来讨论去,功能还没加上,issue 又堆了一堆。

我开始怀疑:这个项目到底是谁的?

一年后,我想放弃了

现在,我每天打开 GitHub 都觉得压力很大:

  • 156个未关闭的 issue
  • 23个等待 review 的 PR
  • 12个人 @ 我问"这个 PR 什么时候合并"

我已经两个月没写新代码了,全在处理 issue 和 PR。

更糟的是,这个项目一分钱都没赚到。我没时间做付费产品,开源项目又不挣钱。

为什么会这样

回头看,我犯了几个错误:

1. 没设定边界

一开始我想做个"人人都喜欢的项目",所以来者不拒:

  • 有人提功能,我就加
  • 有人提 issue,我就回
  • 有人不满意,我就改

结果项目越来越臃肿,我也越来越累。

2. 没找到商业模式

我以为"先做个开源项目,火了之后再考虑商业化"。

但项目火了之后,已经很难商业化了。用户习惯了免费,你要收费他们就会骂你。

3. 一个人扛太多

我没培养核心贡献者,所有决策都我一个人做。

有人想帮忙,但我不敢放权,怕项目跑偏。

我的反思

如果重来一次,我会这样做:

1. 设定清晰的边界

  • 写清楚项目的定位和 non-goals
  • 不符合定位的功能,直接拒绝
  • 设定 issue 和 PR 的响应时间(比如"一周内回复")

2. 考虑商业化

  • 核心功能开源,高级功能收费
  • 或者提供付费支持、付费文档
  • 至少要能覆盖维护成本

3. 培养核心贡献者

  • 找几个靠谱的人,给他们 commit 权限
  • 让他们帮忙 review PR、回复 issue
  • 不要什么都自己扛

4. 学会说"不"

  • 不是所有 issue 都要回复
  • 不是所有 PR 都要合并
  • 不是所有功能都要加

你的时间是有限的,要把精力放在最重要的事情上。

开源值得吗?

这取决于你的目标:

  • 如果你想学习技术、积累经验,开源很值得
  • 如果你想建立个人品牌、扩大影响力,开源很值得
  • 如果你想帮助社区、解决问题,开源很值得

但如果你想赚钱,开源不是好选择。

我现在的计划是:

  1. 把项目交给社区,找几个核心贡献者
  2. 我只维护核心功能,其他的让社区来做
  3. 把精力放在付费产品上

给想做开源的人的建议

  1. 想清楚目标:你为什么要做开源?
  2. 设定边界:什么做,什么不做
  3. 控制规模:别让项目变得太大
  4. 考虑商业化:至少要覆盖成本
  5. 学会放手:培养核心贡献者

开源很酷,但也很累。想清楚再开始。


如果你也在维护开源项目,欢迎交流。

评论区