这是在开源社2021年活动上的分享ppt及文稿
大家好,我是Typecho开发团队的 sluke,感谢大家在线上线下听我分享
我给大家分享的,是一个小故事,一个开源博客程序坚持 15 年的故事,是这个团队的一点点启发和心得
介绍一下Typecho这个产品,这是一个 PHP 写的轻量级博客程序,前身是诞生于 2006 年底的个人项目 Magike 博客,在 2008 年升级成为 Typecho,经历了很多很多个版本,中间有很多次重构,在 2014 年发布了 1.0 正式版,到 2021 年,发布到 1.2 版本,所以,这真的是一个坚持了 15 年的项目。
typecho代码最早是托管在 Google code,后来放在 GitHub,各位开发者抬爱,目前的表现是这样,8.3K个star,1.7K个fork,勉强算是一个老牌的开源项目
Typecho 是一个组合词,由Type和echo构成
Type,有打字的意思,博客这个东西,正是一个让我们通过打字,在网络上表达自己的平台。
Echo,意思是回声、反馈、共鸣,也是 PHP 里最常见、最简单的函数,相信大部分 PHP 爱好者都是从 echo 'Hello,world!'; 开始自己的 PHP 编程之路的。
我们选择这样一个项目名字,也是希望 typecho 能成为我们在开源世界表达自己的一种方式。
介绍一下 typecho 团队,
主力组,Joyqi 和 Fen,typecho 99%的代码,是由他俩完成的;剩下这些不配拥有姓名的人是气氛组,大概完成了 1% 的代码;整个队伍大概相当于 RPG 游戏里,圣骑士 Joyqi 和法师 Fen,带着我们几个路人。
介绍一下我自己,
我是 Typecho 专职催更师、第一个产品运营、第一个文案策划,本身呢,是一个产品经理,现在是一个帮助项目融资的FA,可以通过 GitHub 找到我
这个长达 15 年的故事,要从一个叫做 exblog 的开源程序开始,当年,joyqi 还是一个年轻小伙,还在上大学,给 exblog 开发了几款受欢迎的皮肤,被吸纳进入了 exblog 的开发团队,exblog 就是 joyqi 同学的启蒙之光,后来这个项目因为种种原因停更了,很可惜。2006 年末,从北京实习结束的 joyqi 回到学校,开发开发自己主导的 Magike 项目,在后来才有了 typecho。
从这个故事的开头看,typecho 实际上是 joyqi 和后来加入的我们对开源世界一种回馈,我们都从开源世界里获得了很多,这里不完整列举了一些我们参考研究过的博客程序,有几个算是 CMS,感谢这些开源作者。
说完了开始,接下来说说坚持,我尝试着总结一个非盈利开源项目能坚持下来的模型,也许能给在听分享的开源爱好者一点启发。
想找到坚持的理由,就需要回到遥远的起点,那是 2007 的 wordcamp beijing 活动,这是 wordpress 爱好者的聚会,第一次遇到那么多独立博客博主和知名网红,Typecho 团队第一真正意义上的聚会也是相约在这个活动上,总之,我们在这个活动里聊得很开心,感受到了开源社区的魅力,之后我还参加过很多次 wordcamp。
后来,typecho 有了自己的社区,有了自己的聚会,我们逐渐认识到想要坚持下来,社区承载的“关系”是最重要的动力。
人,是坚持的路由,开源项目以热情开始,以关系维持,从 2007 年到现在,typecho开发者之间,开发者与用户之间,保持着良好稳定的关系。
稳定的关系,为开发者带来的稳定的价值感,也带来了坚持的核心开发者和外部开发者;
稳定的关系,为用户带来确定感和归属感,也带来了对产品的容忍和爱护
稳定的关系,为社区带来细水长流,也形成了typecho的文化
想要稳定的关系被固化下来,就需要一个持续的行为,总结起来一句话,就是锁定一群人,用新玩意儿,不停满足少量固定的需求,对于typecho来说,细化下来就是锁定 独立博客用户群 ,用新技术和新工具,迭代开发一个博客程序,不停满足用户群通过博客网站本身和内容,来表达自己的需求。
这里包含了两个对立统一的意思,
用户群和需求,是固定下来的,不轻易变动的,独立博客用户这个人群,是很小的一个人群,甚至是更新越来越少的一个人群,非常稳定,从“表达”这个特定需要来看,也是稳定的,只是其中有细节上的变化,比如在不同的终端,用不同的语法,使用不同的编辑器来写内容,因此,对用户群和需求固定相对的,是技术和产品功能的流动
做个类比会更加清楚,我们来看非主流音乐,或者是一些小众的乐队
音乐跟博客内容一样,是个人表达的一种载体;
专辑和博客程序一样,是保存内容的容器;
非主流音乐是少数人的玩具,乐队或歌手选择一个小众的音乐风格,实际上是主动放弃了很多受众,这使得小众音乐跟主流流行音乐走上了不同的道路。
流行音乐欣赏门槛低,学习成本低,受众广,是快消品
小众音乐欣赏门槛高,学习成本高,因为需要了解很多背景知识甚至是欣赏技巧,受众窄,是耐用品
这样,小众音乐就变成了具备明显的差异化的内容,小众乐队的乐趣,就变成了需要很长时间才能慢慢释放出来的乐趣。
于是,我们就同样得到了一组对立统一的固定和流动。
小众乐迷和他们欣赏的音乐风格是相对固定的,也就是个人想表达的东西不变
而音乐的编曲和乐队的表演,是流动的,不固定的,也就是表达的细节是变化的
同时,就像乐队要经常演出一样,一个开源程序,也要经常发版本来面对用户
回到“关系”这个关键词,能让一个小众音乐或者小众乐队走得远的,乐队和乐迷可能形成的就是一种“养成系”的关系,一起走过很多很多年,想一想,一些城市的球队,甚至是现在热门的德云社和脱口秀,是不是也很像这种“养成系”的关系。
找到了“关系”这个关键词,接下来就是分享一点点维持“关系”的心得,未必会适合所有的开源项目,心得有三点
第一点心得:资源有限,需要取舍
我们的时间有限,资源有限,需要勇气和智慧主动放弃很多东西,才能具备坚持下来的条件
这涉及到开发者对自己的定位、对项目的定位、对取舍标准的定义
首先,开源项目如果不是你的收入来源的话,不要影响养家糊口,面对时间和资源冲突的时候,以主业为重,不要想兼顾,而是想先顾主业,后顾开源
说来很有趣,typecho的开发团队,都是爱折腾的人,都跟创业有关
joyqi&fen&sunny,是segmentfault思否的创始人,这是最好的中文开发者社区之一
我曾经是pmcaff产品经理社区的联合创始人COO,这是最老牌的产品经理交流社区,现在是一个帮助创业企业,开源项目融资的FA
其他人不是正在创业就是创业成功
主业上有保障,我们才能持续探索和回馈社区,才不会耽误我们更新typecho
Typecho 这个产品,有自己的人设,就是 轻量级 博客程序,所以在开发的时候,我们可以根据这个人设,取舍很多东西
比如强调国际化支持;强调灵活的插件API;强调极少量的数据库表;
比如不做静态缓存机制;早期没有编辑器,仅支持手写markdown;没有官方的备份插件;
我们就是想让 typecho 成为一个简约的容器,真正的主角是博主写的内容,取舍,让 typecho 不会向着一个复杂的CMS发展,而是保持博客程序这个形态,这样对开发团队的时间要求更低,更容易坚持开发。
简单说,产品理念会让产品自己选择用户群,从而留下“臭味相投”那些人;而产品的人设,实际上就是用户对自己的人设。Typecho 的简约定位,也要求用户做出取舍,选择 typecho,就意味着有一定的使用门槛,甚至是不便,就像是开手动挡的汽车一般乐趣和痛苦并存。
用什么评价我们的取舍是否正确呢?那就是使用 typecho 的用户,是不是主动发朋友圈,主动安利这个小程序,是不是以使用一个简约取向的博客程序而强化了对自己的认同。
第二点心得:热情有限,需要关系,需要真实的关系
时间宝贵,热情容易消逝,尤其是容易消逝在无穷无尽的讨论中,这个像 typecho 这样的项目能否坚持,很大程度上取决的核心成员的热情,取决于他们写代码是不是上头。因此,要让极少数人作为核心团队,去决定第一点所讲的取舍。
让多数人提isssue,跟少数人讨论,让极少数人做决定
核心的开发者,一定要有机会就见面,以前joyqi和fen在杭州,我去杭州出差的时候就会去他们办公室拜访,他们在北京办活动的时候我也会参加,现在好很多了,思否在北京有办公室
第三点心得:能力有限,需要社区
这不只是说开源项目需要其他开发者贡献代码,而是开源社区才是“关系”的真正载体,是项目活跃和存续的基石。
首先,工具和技术要时尚,保持工具的更新,借力工具来刺激社区用户和开发者,热情的开发者总会使用新的工具
开源项目首先要是玩具,常玩常新的玩具才有意思,被打上“过气”标签的技术,就算在稳定完善,也很容易被开发者抛弃。
所以 typecho 在选择支持新技术和新架构方面,是相对激进的,比如放弃对PHP5的支持,开发官方容器化脚本等
其次,社区要有梗,甚至基于产品理念和现状造梗,很幸运,typecho 社区用户就挺能自己吐槽的
比如,日志没几篇,皮肤换挺快
比如,更新没几行,关issues挺多
Joyqi 自己也是一个有梗的人,社区的 KOL 如果有专属于自己的梗,会让这个 KOL 显得更鲜活,跟用户的关系也更近
比如,Joyqi 总是年度总结要更新 typecho ,但是总跳票的梗
比如,Joyqi 步步高升的发际线
总结一下 typecho 坚持下来的几个关键点
做准一点,有产品定位,不偏离
做少一点,懂得取舍,才能在某些心血来潮的时刻里更新
做个人,保持热情,保持互动,保持关系
最后,借用 Joyqi 博客里的一句话,说明 Typecho 这个项目最底层的价值
个人博客就像大海中的小岛,在信息海浪中显得那么不起眼,但它的存在本身就彰显了一种意义。
我的分享就到这里,希望能跟热爱开源的各位有更多交流,可以是开源项目运营,可以是开源项目融资,也可以是产品咨询建议
都通过这个邮件可以联系到我
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。