• 请不要在回答技术问题时复制粘贴 AI 生成的内容
robinshen
V2EX  ›  程序员

开发了六年的产品迎来了第一个商业客户

  robinshen · Sep 8, 2023 · 16059 views
This topic created in 1153 days ago, the information mentioned may be changed or developed.

准确的说,应该是开发了十年,如果从第一行代码开始算起的话。一开始的几年没有方向,就写写类库,整理整理以前的工作。

code history

产品是 OneDev,去年也在 V2EX 发了贴,大致介绍了功能: https://sunp.eu.org/t/833320#reply140

为了能够长期的开发下去,上个月发布了企业版,进行商业化尝试。昨天获得第一个商业订单,感谢客户的支持。也跟大家分享下产品的一些经历。

这个产品能够坚持到现在,最关键的是我没有全职做这件事情,目前还在公司混饭吃。希望有朝一日产品的收入能够支持我全职做这个产品,甚至是拉起一个团队来做。

几年前,红杉美国的一个投资人找到我希望了解 OneDev 的详细情况,我 blabla 介绍了 OneDev 独有的一些功能,然后他这样回复我:

Just building features that are missing in GitHub/Gitlab is probably not enough — either they will build these features over time, or they won’t build them because they decide there isn’t enough demand for such features

然后就没有然后了。之后好好想了想 OneDev 应该怎么定位,最后决定聚焦于自建服务市场,因为:

  1. 虽然云托管是趋势,但仍然有很多公司需要自行托管他们的代码/ci-cd 服务器,主要是因为政策原因。我还查了 GitLab 的公开上市文档,到 2020 年,他们 75% 的收入来自于自建服务用户。所以这个市场确实存在。
  2. Git 托管和 CI/CD 会消耗大量资源。聚焦自建服务市场不会给项目带来任何财务负担。
  3. 头部玩家的产品针对极大量用户的云服务优化,但对于自建服务市场,未必是最优的。他们的产品维护起来一般是比较麻烦的。而 OneDev 只针对自建服务的情况进行优化,从各个方面都强调产品的易于维护性。例如,配置高可用对于 OneDev 来说非常简单,而对于 GitLab 来说则非常复杂,因为系统包含了太多独立运行的组件。

目前 OneDev 积累了一定的用户量,最明显的感受是一旦有什么比较明显的 bug ,发布后很快就能得到用户的反馈,然后及时改掉。记得产品开发的前几年,有些严重的 bug 发布了个把月都没有人反馈,直到自己发现,那样的心情想必做独立产品开发的同学会有所体会。

后来高瓴和红杉中国也主动找到过我,特别是高瓴,聊到了第三轮,最后他们的副总裁跟我说他们觉得项目非常好,会内部讨论下,之后也没有回音了。我也没有问他们原因,可能是觉得不够高成长吧。

还有一次国内某头部券商的架构师找到我,问能不能提供企业版本和商业支持,他们打算基于 OneDev 打造全自主的 DevOps 平台,大概有不到 1000 人使用,还拉了十几个人的腾讯会议商量后续的推进。把我给激动的,赶紧快马加鞭推出企业版,特意等到周五(想必快周末了对方心情比较愉悦)跟架构师说,企业版准备好了,要付钱的话我很乐意,然后他告诉我对不起我们决定用 Gitee 了,后续有需要的话会联系你。为了保持中年人的最后倔强,我也没有问他为什么没选 OneDev 。其实原因很清楚,Gitee 的市场不是白做的,而且有各种认证,也有国资背景。产品质量在国内大公司的选型中应该是最次要的因素了吧。

最后说说海外收款,我用的是 FastSpring 。自己特意下单做了实验,钱款可以从国外直接汇到国内个人账户,税务自理。中国银行的工作人员入账时会询问这是货物贸易吗?这是一定要说不是,必须强调是版权销售收入,对方是版权代理商,最后钱款顺利入账。

125 replies  •  2025-06-15 14:32:43 +08:00
1  2  
❮ ❯
banlifeather4
banlifeather4
Sep 8, 2023❤️37
1
真牛! 不为别的,这份坚持就足以配得上未来的成功
xlsepiphone
xlsepiphone
Sep 8, 2023
2
厉害。
RRL
RRL
Sep 8, 2023
3
恭喜!长期主义总是能收获到一些东西。现在项目小,项目大了一定支持你。
robinshen
robinshen
OP
Sep 8, 2023
4
@blackboom 感谢支持
nomagick
nomagick
Sep 8, 2023
5
我觉得你的这个方案很适合需要私有 GitLab 类似物,但是不愿意运行 Ruby 的情况。
Ruby 什么时候死,你的项目就什么时候起飞。
这件事迟早要发生,坚持住,提前做好布局,到时候就是你的主场。
simonCN
simonCN
Sep 8, 2023❤️3
6
大佬太强了,一个人能做这么复杂的功能,让只会做 TodoList 、记账、日记的 indie hacker 情何以堪
robinshen
robinshen
OP
Sep 8, 2023❤️1
7
@simonCN 日积月累,只做一件事,大部分人都可以的。
robinshen
robinshen
OP
Sep 8, 2023
8
@nomagick 感谢祝福 😄
airyland
airyland
Sep 8, 2023
9
坚持总会有收获,不管是直接的还是间接的。
freemoon
freemoon
Sep 8, 2023
10
或许你需要找个懂市场的合伙人,几十万行代码,多年呕心沥血的结晶,应该将它推向世界
AppJun
AppJun
Sep 8, 2023
11
好事啊,开张了。
robinshen
robinshen
OP
Sep 8, 2023
12
@lasuar 确实这方面很不擅长。
zaczhou
zaczhou
Sep 8, 2023
13
恭喜
Alex5467
Alex5467
Sep 8, 2023 via iPhone
14
拉到投资了么?
dk7952638
dk7952638
Sep 8, 2023
15
很感兴趣您的 UI ,非常 coool ,请问是用的什么类库还是自己手写的啊?
robinshen
robinshen
OP
Sep 8, 2023
16
@Alex5467 没,只能靠自己造血了
robinshen
robinshen
OP
Sep 8, 2023
17
@dk7952638 手写
Huelse
Huelse
Sep 8, 2023
18
非常支持,去年就开始用 onedev 作为个人仓库了,期间也提过一些小 issues ,希望坚持下去!
isno
isno
Sep 8, 2023❤️1
19
靠理想坚持了 10 年,太不容易了。尽快推向市场吧,用赚钱去驱动
Jobcrazy
Jobcrazy
Sep 8, 2023
20
真不容易,为你点个赞。以前没用过,马上要给公司搭简单的 Git 服务器,准备用一下试试看。
robinshen
robinshen
OP
Sep 8, 2023
21
@isno 已经推出商业版了,也有一些不错的反馈。十年只是一个开始,😂
maxxfire
maxxfire
Sep 8, 2023
22
LZ 是个有情怀的人,匠人
ownSun
ownSun
Sep 8, 2023
23
牛逼楼主! 十年一个项目, 有初心,有毅力,有能力啊。
graetdk
graetdk
Sep 8, 2023
24
老哥牛逼,我和投资人打交道不少,个人建议是不要把他们的话太当真,做好预期管理
robinshen
robinshen
OP
Sep 8, 2023
25
@graetdk 是的,这帮人太会说话了。高瓴最后的消息就是有什么新的进展及时通知我们哦。
1map
1map
Sep 8, 2023
26
佩服,加油 OP
graetdk
graetdk
Sep 8, 2023
27
@robinshen 如果不是直接跟你约时间推进,或者拉着你签协议,就可以看作是没有意向了,但这个其实很常见,大部分项目融资都得见 30-50 个机构才有可能
robinshen
robinshen
OP
Sep 8, 2023
28
@graetdk 现在看来就是下面的马仔撒网,然后让老大来看看靠不靠谱。
nomagick
nomagick
Sep 8, 2023❤️5
29
我又多想了几步,你这个项目的竞品 GitLab, 什么 Gitee ,再就是 GitHub Enterprise ,这几位有个特点就是都是 Ruby 项目。

我现在家里装个 GitLab 隔三差五就是 email 说安全漏洞让我 update-asap ,这五年多就从来没断过,也不知道他哪来那么多安全漏洞,修也修不好,敢情他家漏洞比隔壁 PHP 那边的难兄难弟还多几倍。

Ruby 现在江河日下,跟不上时代,还不如 C++上进,马上就要步 Perl 的后尘。
只需要推波助澜,替天行道,加速 Ruby 进入历史的垃圾堆。

有些事长痛不如短痛,一个语言跟不上时代之后,人才就会持续流出,因为学习它的收益很低,并且落后于行业,由于人员的流出,这个语言的项目就更难得到发展,而维护难度和费用却不断增长,最终进入价高质低陷阱。
之前 Cobol 和 Perl 的淘汰都已经展示了这套运行机制,需要吸取教训。

所以说在进行市场活动的时候,可以指出竟品维护的可持续性及成本的问题,提醒甲方不要花钱买个大爷。
另外借上 Java 的东风,就说总之是个 Java 项目甲方自己也可以改,并且 Java 的从业人员简直不要太好找。

基于这些假设甚至可以主动出击,对 Ruby 釜底抽薪,比如找人发表一篇 九评 Ruby ,
再比如对其他 Ruby 的遗产项目比如 HomeBrew 进行打击,用 Python 重写 brew ,甚至借助 GPT4 的力量直接把整个生态平移。这个项目本身体量小但影响大,四两拨千斤。

这种打法我愿称之为降维打击
jellybool
jellybool
Sep 8, 2023 via Android
30
老哥是真的厉害! respect
xubeiyou
xubeiyou
Sep 8, 2023
31
这个坚持真的很不容易
g0o0gle
g0o0gle
Sep 8, 2023
32
猛
7897894
7897894
Sep 8, 2023
33
大佬牛逼 瑞思拜🫡
tom8
tom8
Sep 8, 2023
34
大佬牛逼 瑞思拜🫡
robinshen
robinshen
OP
Sep 8, 2023
35
@nomagick GitLab 漏洞多跟 Ruby 语言关系不大吧,相比之下 GitHub 的质量就好多了。GitLab 的开发者良莠不齐应该是主要原因。还有很多人说 OneDev 用了 Java ,不够云原生呢。
2Soon
2Soon
Sep 8, 2023
36
瑞思拜
nomagick
nomagick
Sep 8, 2023
37
@robinshen 关系很大,但不是直接关系,生态吸收不到人才,已有的人才流出,新的语言概念得不到应用,架构得不到换代,这些都会间接作用在项目质量上,而且是无解的。

微软花多少成本在维护 GH ,GL 又花了多少成本维护,而你一个人就已经把项目做到了这个程度,这就是云泥之别。

所谓云原生完全就是炒作概念,换句话说,云原生就代表离开云就运行不了,那岂有此理。首先需要重新定义云,把云替换解释成 k8s ,这样才可控,否则就为他人做嫁衣了,很多人做了半天都是给 AWS 在做销售。只要做到 k8s 全兼容就可以称云原生了,和语言无关。
shinession
shinession
Sep 8, 2023
38
传统公司不允许用 github 之类的, 早就想自己部署个类似的服务, 大佬的可以试下
EvanD
EvanD
Sep 8, 2023
39
大佬真猛
lovedebug
lovedebug
Sep 8, 2023
40
从小处做起,真的很不错~ 加油
SleepyRaven
SleepyRaven
Sep 8, 2023
41
厉害!感觉离成功不远了,就差一个契机!
fzls
fzls
Sep 8, 2023
42
厉害呀,一个人做的这么大
ttvv123
ttvv123
Sep 8, 2023
43
恭喜
ChellFong
ChellFong
Sep 8, 2023
44
太厉害了!想问一下大佬最初是怎么学习起来的呢,我现在刚刚入门,希望能得到一些建议,像大佬学习!谢谢!
robinshen
robinshen
OP
Sep 8, 2023
45
@ChellFong 这个。。。最重要的是找点小项目做。边做边学吧。
san3
san3
Sep 8, 2023
46
我辈楷模,膜拜一下大佬
瑞思拜
defunct9
defunct9
Sep 8, 2023
47
恭喜,去年向好几个人推荐了 onedev ,确实好用。奈何公司这帮菜鸡,老帮菜的 jenkins 弄得无比复杂,顿时没有迁移的心情了。否则是一定要用的。
robinshen
robinshen
OP
Sep 8, 2023
48
@defunct9 感谢感谢,之前看到你一直推荐 OneDev ,实在是感激不尽啊。
asny
asny
Sep 8, 2023
49
太荔枝了!
wshhfy
wshhfy
Sep 8, 2023
50
好活!找时间把自己的 gitlab 替换了!老哥太牛逼了
guaiZhang
guaiZhang
Sep 8, 2023
51
去年就看过推广的帖子,觉得太牛了。之前没经验,现在刚好想自建一个 git 服务,准备就用这个了。当然 star 去年就已经交出了哦。
robinshen
robinshen
OP
Sep 8, 2023
52
JeffreyRSmith
JeffreyRSmith
Sep 8, 2023
53
支持一波,匠人,坚持的力量值得学习!
shiny
shiny
PRO
Sep 8, 2023
54
恭喜你,为你感到高兴
tramm
tramm
Sep 8, 2023
55
话说, 任务看板啥的项目管理功能能不能抽出来单独使用
robinshen
robinshen
OP
Sep 8, 2023
56
@tramm 可以在不需要代码和 ci/cd 的情况下单独使用啊。功能还是很强的。
Microi
Microi
Sep 8, 2023
57
太佩服了,十年磨一剑,希望 OP 越来越成功。
bybyte
bybyte
Sep 8, 2023
58
就凭这份支持我就必须得给赞
buruliu
buruliu
Sep 8, 2023
59
交出一个 star 。有时间部署个把自己的 gitea 换了。
JimmyTinsley
JimmyTinsley
Sep 8, 2023
60
是大佬, 太强了
Alex5467
Alex5467
Sep 8, 2023 via iPhone
61
@robinshen 老哥是粉公司还是个人开发啊,可以留个联系方式吗?
Alex5467
Alex5467
Sep 8, 2023 via iPhone
62
@Alex5467 不好意思,多了个粉
sdenvi
sdenvi
Sep 8, 2023
63
恭喜恭喜,已经用上了
hslx111
hslx111
Sep 8, 2023
64
恭喜 真的看到了坚持的力量
leehomyhh
leehomyhh
Sep 8, 2023
65
牛逼,膜拜下大佬
3d22qCFSP087xAV8
3d22qCFSP087xAV8
Sep 8, 2023
66
恭喜恭喜,沾沾喜气~
robinshen
robinshen
OP
Sep 8, 2023
67
@Alex5467 个人开发。可以发邮件给我 [robin AT onedev DOT io]
fiveStarLaoliang
fiveStarLaoliang
Sep 8, 2023
68
加油加油
victimsss
victimsss
Sep 8, 2023
69
公司也是牛批,允许自己干这个,意思是你十年都在同一家公司?
robinshen
robinshen
OP
Sep 8, 2023
70
@victimsss 是的
huangsen365
huangsen365
Sep 8, 2023
71
商业化之后,网站需要提供高可用架构和 WAF/CDN ,为客户提升性能增强安全确保可靠
Exxfire
Exxfire
Sep 8, 2023
72
太励志了,独立开发者很酷!
CrankZ
CrankZ
Sep 8, 2023
73
问一下,风投是怎么找到你呢?
11232as
11232as
Sep 8, 2023
74
恭喜 OP !
xinshoushanglu
xinshoushanglu
Sep 8, 2023
75
膜拜,毅力惊人!我也想做成一个成功的产品
E1n
E1n
Sep 8, 2023
76
周一去公司测试 k8s 集群上部署一套看看:)
davis2023
davis2023
Sep 8, 2023
77
必须 star ,为了中年开发者最后的倔强
lizhenda
lizhenda
Sep 8, 2023
78
真的很佩服愿意坚持 10 年做一件事情!
robinshen
robinshen
OP
Sep 8, 2023
79
@CrankZ 我觉得他们的马仔会经常看各知名开发者论坛的热帖,包括 V2EX 的,之前找到我就是在我去年发的一个帖子成为热帖之后。
lefer
lefer
Sep 8, 2023
80
我的天啊!这竟然是一个个人项目!!!!
kingjpa
kingjpa
Sep 8, 2023
81
为什么没有中文文档额。
robinshen
robinshen
OP
Sep 8, 2023
82
@kingjpa 很多中文教程写在知乎:
https://www.zhihu.com/people/shen-robin/posts

其他的文档,包括用户界面精力有限就没有翻译了。
vice
vice
Sep 8, 2023
83
太强了,膜拜!这竟然是个人开发的..牛!如果有需要产品设计之类的,非常乐意无偿帮忙!太强了!
robinshen
robinshen
OP
Sep 8, 2023
84
@vice 非常感谢!
roundgis
roundgis
Sep 8, 2023 via Android
85
@robinshen 一個 java 進程就能做好的事非要拆成幾十個搞什麼雲原生 真是蛋痛 還不如用 java
crazyweeds
crazyweeds
Sep 8, 2023
86
非常厉害,有点私心,想请教一个问题,前端的代码编辑器是什么技术实现的?最近想写一个 SQL 相关的,想实现自动补全,代码片段识别(可能有多个 SQL ),期望你的回复。
tuutoo
tuutoo
Sep 8, 2023
87
恭喜,从 0 到 1 的转变是质的转变。
duck2
duck2
Sep 8, 2023
88
瑞思拜
devjia
devjia
Sep 8, 2023
89
目前是个人在用, 牛啊牛啊
so2back
so2back
Sep 9, 2023
90
牛逼
zzzkkk
zzzkkk
Sep 9, 2023 via Android
91
版权销售收入和服务收入有区别吗 税率不同?
kjstart
kjstart
Sep 9, 2023
92
牛逼啊, 程序员心中都有自己开发软件的梦想, 但能实现需要超越常人的能力和毅力.
摘抄一句与大家共勉:
"这个产品能够坚持到现在,最关键的是我没有全职做这件事情"
zzzkkk
zzzkkk
Sep 9, 2023 via Android
93
@nomagick
对 php 怎么看
robinshen
robinshen
OP
Sep 9, 2023
94
@roundgis 对于需要快速启动并结束的任务(比如 serverless),采用 golang/rust 等语言确实有优势。但是对于长运行的服务如 OneDev 这样的,Java 没有任何问题。而且得益于 Java 的生态,很多任务可以放在同一个进程里,反而可以减少资源开销,比如 GitLab 还包含了 ElasticSearch 。而 ElasticSearch 又是运行在 JVM 上的。
robinshen
robinshen
OP
Sep 9, 2023
95
@zzzkkk 都可以,但不要说货物贸易。否则不给入账。
robinshen
robinshen
OP
Sep 9, 2023
96
@crazyweeds 为了减少资源开销,都是在同一个 JVM 内部实现各语言的分析,使用了 ANTLR ,有各种主流语言的语法描述可以自动生成 parser ,包括各种 sql:
https://github.com/antlr/grammars-v4/tree/master/sql
anjingdexiaocai
anjingdexiaocai
Sep 9, 2023 via Android
97
有时间瞅瞅换掉家里的 gitlab 😂
ltkun
ltkun
Sep 9, 2023 via Android
98
自建肯定是需要的 云什么的除了方便其他都是缺点
ktqFDx9m2Bvfq3y4
ktqFDx9m2Bvfq3y4
Sep 9, 2023 via iPhone
99
OP 太强了。这个与 Azure DevOps 相比如何?我们公司和我自己现在都用微软的了,之前用 GitHub Actions 太局限。现在用的这个挺好的。
robinshen
robinshen
OP
Sep 9, 2023
100
@Chad0000 最大的特点应该是不需要自己写 yaml 文件吧。还有跟其他部分的紧密集成,比如这个例子:
https://code.onedev.io/onedev/server#customizable-issue-state-and-field-with-deep-cicd-integration
1  2  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1448 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 205ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
♥ Do have faith in what you're doing.