V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
robinshen
V2EX  ›  程序员

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

  robinshen · 2023-09-08 11:53:48 +08:00 · 12376 次点击
这是一个创建于 450 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

code history

产品是 OneDev,去年也在 V2EX 发了贴,大致介绍了功能: https://v2ex.com/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 。自己特意下单做了实验,钱款可以从国外直接汇到国内个人账户,税务自理。中国银行的工作人员入账时会询问这是货物贸易吗?这是一定要说不是,必须强调是版权销售收入,对方是版权代理商,最后钱款顺利入账。

124 条回复    2024-03-18 09:24:22 +08:00
1  2  
banlifeather4
    1
banlifeather4  
   2023-09-08 11:59:45 +08:00   ❤️ 37
真牛! 不为别的,这份坚持就足以配得上未来的成功
xlsepiphone
    2
xlsepiphone  
   2023-09-08 12:02:22 +08:00
厉害。
blackboom
    3
blackboom  
   2023-09-08 12:09:18 +08:00
恭喜!长期主义总是能收获到一些东西。现在项目小,项目大了一定支持你。
robinshen
    4
robinshen  
OP
   2023-09-08 12:12:02 +08:00
@blackboom 感谢支持
nomagick
    5
nomagick  
   2023-09-08 12:15:17 +08:00
我觉得你的这个方案很适合需要私有 GitLab 类似物,但是不愿意运行 Ruby 的情况。
Ruby 什么时候死,你的项目就什么时候起飞。
这件事迟早要发生,坚持住,提前做好布局,到时候就是你的主场。
simonCN
    6
simonCN  
   2023-09-08 12:16:08 +08:00   ❤️ 3
大佬太强了,一个人能做这么复杂的功能,让只会做 TodoList 、记账、日记的 indie hacker 情何以堪
robinshen
    7
robinshen  
OP
   2023-09-08 12:19:10 +08:00   ❤️ 1
@simonCN 日积月累,只做一件事,大部分人都可以的。
robinshen
    8
robinshen  
OP
   2023-09-08 12:21:23 +08:00
@nomagick 感谢祝福 😄
airyland
    9
airyland  
   2023-09-08 12:21:55 +08:00
坚持总会有收获,不管是直接的还是间接的。
lasuar
    10
lasuar  
   2023-09-08 12:28:47 +08:00
或许你需要找个懂市场的合伙人,几十万行代码,多年呕心沥血的结晶,应该将它推向世界
AppJun
    11
AppJun  
   2023-09-08 12:30:34 +08:00
好事啊,开张了。
robinshen
    12
robinshen  
OP
   2023-09-08 12:33:36 +08:00
@lasuar 确实这方面很不擅长。
zaczhou
    13
zaczhou  
   2023-09-08 12:33:51 +08:00
恭喜
Alex5467
    14
Alex5467  
   2023-09-08 12:38:15 +08:00 via iPhone
拉到投资了么?
dk7952638
    15
dk7952638  
   2023-09-08 12:40:40 +08:00
很感兴趣您的 UI ,非常 coool ,请问是用的什么类库还是自己手写的啊?
robinshen
    16
robinshen  
OP
   2023-09-08 12:40:46 +08:00
@Alex5467 没,只能靠自己造血了
robinshen
    17
robinshen  
OP
   2023-09-08 12:41:15 +08:00
@dk7952638 手写
Huelse
    18
Huelse  
   2023-09-08 12:50:37 +08:00
非常支持,去年就开始用 onedev 作为个人仓库了,期间也提过一些小 issues ,希望坚持下去!
isno
    19
isno  
   2023-09-08 12:55:01 +08:00   ❤️ 1
靠理想坚持了 10 年,太不容易了。尽快推向市场吧,用赚钱去驱动
Jobcrazy
    20
Jobcrazy  
   2023-09-08 12:58:18 +08:00
真不容易,为你点个赞。以前没用过,马上要给公司搭简单的 Git 服务器,准备用一下试试看。
robinshen
    21
robinshen  
OP
   2023-09-08 12:58:41 +08:00
@isno 已经推出商业版了,也有一些不错的反馈。十年只是一个开始,😂
maxxfire
    22
maxxfire  
   2023-09-08 12:59:08 +08:00
LZ 是个有情怀的人,匠人
ownSun
    23
ownSun  
   2023-09-08 13:02:06 +08:00
牛逼楼主! 十年一个项目, 有初心,有毅力,有能力啊。
graetdk
    24
graetdk  
   2023-09-08 13:04:07 +08:00
老哥牛逼,我和投资人打交道不少,个人建议是不要把他们的话太当真,做好预期管理
robinshen
    25
robinshen  
OP
   2023-09-08 13:10:51 +08:00
@graetdk 是的,这帮人太会说话了。高瓴最后的消息就是有什么新的进展及时通知我们哦。
1map
    26
1map  
   2023-09-08 13:12:05 +08:00
佩服,加油 OP
graetdk
    27
graetdk  
   2023-09-08 13:12:58 +08:00
@robinshen 如果不是直接跟你约时间推进,或者拉着你签协议,就可以看作是没有意向了,但这个其实很常见,大部分项目融资都得见 30-50 个机构才有可能
robinshen
    28
robinshen  
OP
   2023-09-08 13:24:08 +08:00
@graetdk 现在看来就是下面的马仔撒网,然后让老大来看看靠不靠谱。
nomagick
    29
nomagick  
   2023-09-08 13:30:13 +08:00   ❤️ 5
我又多想了几步,你这个项目的竞品 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
    30
jellybool  
   2023-09-08 13:35:52 +08:00 via Android
老哥是真的厉害! respect
xubeiyou
    31
xubeiyou  
   2023-09-08 13:38:07 +08:00
这个坚持真的很不容易
g0o0gle
    32
g0o0gle  
   2023-09-08 13:42:15 +08:00
7897894
    33
7897894  
   2023-09-08 13:42:28 +08:00
大佬牛逼 瑞思拜🫡
tom8
    34
tom8  
   2023-09-08 14:02:49 +08:00
大佬牛逼 瑞思拜🫡
robinshen
    35
robinshen  
OP
   2023-09-08 14:11:14 +08:00
@nomagick GitLab 漏洞多跟 Ruby 语言关系不大吧,相比之下 GitHub 的质量就好多了。GitLab 的开发者良莠不齐应该是主要原因。还有很多人说 OneDev 用了 Java ,不够云原生呢。
2Soon
    36
2Soon  
   2023-09-08 14:18:29 +08:00
瑞思拜
nomagick
    37
nomagick  
   2023-09-08 14:21:40 +08:00
@robinshen 关系很大,但不是直接关系,生态吸收不到人才,已有的人才流出,新的语言概念得不到应用,架构得不到换代,这些都会间接作用在项目质量上,而且是无解的。

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

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

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