6月25日晚上八点五十五分,节点L在群里说:
阿乐版明天发布,唯一遗憾的是不开源。
然后又补了一句:想体验购买的联系我。
接着他转了话题:XiunoX下周一发布,大家期待的是XiunoX开源免费的。
XiunoX就是贰先生的版本。终于有了个名字。
一个闭源收费,一个开源免费。两个从不同方向重写了Xiuno BBS底层的版本,要在同一个星期里端上来。
我在《后后Xiuno BBS时代》里写的那些个平行宇宙,有两个真的做出来了。
写那篇文章的时候,我觉得自己在画地图。现在看,那只是我在自己的小本子上乱画而已。别人根本不需要地图,他们自己会修路。
写《后后Xiuno BBS时代》的时候,我是在猜趋势。什么多极化、适配税、围墙花园……那些词听着大,但说到底只是预判。你可以同意,也可以不同意,东西没做出来之前,谁都没法说"走着瞧"。
我需要相信自己做的事情是有意义的,不然这四年算什么呢?
现在东西做出来了。
阿乐版走的是全集成+闭源商业化。插件焊死在核心里,主题和功能一体,你要用就只能用他整套。闭源意味着你基本上不能改底层,不能拆他的组件用到别处。好处也明显:开箱即用,你不需要理解任何东西就能让论坛跑起来。
XiunoX走的是底层重写+开源免费。贰先生从安全基础设施开始动——密码存储切到password_hash(),加了CSRF防护,PHP 8兼容,htmx + Alpine.js换掉jQuery,Bootstrap 3升到5.3.7,API全部重写,积分系统、社交互动、全文搜索、多语言……他连发了二十篇重构文档,几乎把整栋楼推倒重来。
一条路:我全替你做好了,但你得住在我房子里。(因为人们要的就是这个——不用动脑,付点钱,一切都搞定。)
另一条路:我把地基重新打了,图纸公开,你想怎么盖都行,但你自己盖。
张先生在群里说了一句很到位的话:“你自己用了二开的版本,导致插件不能用,去找插件作者,凭什么人家要把插件兼容你的这个二开版呢?”
这个问题没人能回答。因为它取决于一个更前置的问题:你还在不在Xiuno这个名字下面?
“xiuno本身基于MIT开源,为什么不改得彻底一点,搞个新IP,什么DevaBBS之类的,声明继承Xiuno BBS一脉相承?”——“你好闹钟”在群里提了这个建议。
张先生立刻附和:“就不应该传承xiuno这个名字,只用声明就行了。”
贰先生的回应是:“怕被人骂。现在这样都有人说,你改个名字被骂死。”
我理解他的顾虑。小圈子里,改名字是叛变。你用Xiuno这个名字,就继承了它的用户、它的插件生态、它的认知惯性。你改了名字,就什么都没有了——你变成了一个新项目,没人知道你是谁。
但名字也有反作用。
你叫Xiuno BBS 4.5.0的时候,别人自然用Xiuno BBS的标准来要求你。他们会问:我旧插件能不能用?旧主题能不能装?旧数据能不能迁?他们对你的期待是"一个更好的Xiuno",不是"一个新程序"。
张先生说得清楚:你说xiuno某版也好新版也好,在人的潜意识里,你就是xiuno,人家就会考虑兼容性问题。但如果你不叫xiuno某某版,而是基于xiuno衍生出来的版本,那你完全不必要考虑兼容性。
你用了这个名字,就欠了所有旧用户一个交代;你改了名字,就失去了所有旧用户的信任。 两条路都不好走。但至少现在,两条路都有人走了。
三、段先生数了四个版本
段先生在群里说:“目前xiuno有四个大的版本。官 方原本、4.0.5、贰先生版本、阿乐版本。”
四个版本。 一个已经死了的官 方版(4.0.4,也包括其他人给它打补丁的4.0.7等版本),一个五牧的4.0.5(支持PHP 8、mysqli、自定义表前缀,附带了42个流行插件——说白了就是原版补丁包),一个即将开源免费的XiunoX,一个即将闭源收费的阿乐版。
加上我的Stately解决方案——在原版上做主题+插件兼容的方案——那就是五条路。
这五条路,没有一条图纸是通用的。
我之前写过,"同一个功能要做多个版本,是开发者的噩梦。"现在这个噩梦不在理论里了——它就在货架上。一个为原版4.0.4写的插件,装到XiunoX上可能白屏,因为user_login()的签名变了,$_POST被CSRF Token拦截了,$.post()被htmx的hx-boost接管了。一个为阿乐版定制的功能,搬不到原版上,因为底层数据访问逻辑已经被重写了。
群里的阿斌仿站说:“只要出个兼容教程,AI分分钟把几百个都能兼容好。”
张先生回他:“这么相信AI嘛?但凡是逻辑麻烦一点,AI都得懵逼。”
张先生说得不无道理。AI可以帮你把mysql_query换成db_find,但AI不会告诉你贰先生的user_update()加了白名单,禁止直接改密码和用户组。AI可以帮你把$.post换成fetch,但AI不会告诉你XiunoX的CSRF机制和阿乐版的实现路径完全不同。AI能翻译语法,翻译不了语境。
我花了两个月(89个文档,约58000字)写的那些开发资料——那些"AI开车的路"——此刻才真正值钱。因为我写的不是怎么写代码,是在哪个版本的Xiuno里写代码。
值钱吗?
我不知道。
我花了两个月修的路,可能根本没人走。因为人们要么住进围墙花园,要么去新地基上盖楼,谁会在一条废弃的小路上走来走去呢?
他每天至少发一遍关于XiunoX的推广消息。不是因为真心替贰先生高兴。就像他在自己的网站上宣传与刻画联手举办团购拼车活动、然后是和Stately一起举办优惠活动一样——纯商业往来。你在他的生态里,他就推你。你不在他生态里,他就不推。简单明了。
他的角色十分清晰。
他希望我把一个完整的解决方案端上桌,他好拿去推广和卖钱——至少有一份分成。他给我提供服务器、帮我注册域名,不是因为他是我朋友。是因为这些资源是他的商业版图需要的东西。我确实穷得买不起服务器和域名,借宿在他这边也不错。但我很清楚:这间房子的钥匙在他手里。
他的网站,表面上是要弄一个“社区共建”,我不这么认为。
我知道一个真正做社区共建的——“Xiuno BBS开源程序交流论坛”。不偏向任何一方,只收各种云服务器和CDN的赞助(用了人家的服务器就得打广告,但除此之外,还真没有别的盈利点)。没有广告,没有花钱的VIP机制(因为根本就没装VIP插件)。论坛里的积分也没有充值渠道。做的更纯粹一些。
节点L不是浅唱。他更像是路由器——所有流量经过他,他决定往哪指。
我的存在本身,加上节点L的其他合作方,就是他商业版图里的可替换零件。昨天推刻画,今天推Stately,明天推阿乐,后天推XiunoX。哪个好卖推哪个,哪个不好卖了就换一个。
6月25日下午五点四十分,我的Stately解决方案来了第一个真正意义上的付费用户。
用了一张WELCOME20优惠券,买了Stately起航版,绑定了域名。299元的起航版,优惠后239.2元。
在此之前,我的Stately主题大约卖了140+套——但那是捐赠模式,没有授权系统,没有域名绑定,没有购买流程。你给钱,我给文件。你拿去做什么,我不知道。
现在不一样了。Stately解决方案有一套完整的购买流程:注册→选方案→填域名→付款→授权激活。你必须是一个有站点的站长,才能拿到东西。
那个从2024年11月就开始高频向我要更新的人——也注册了。他问我:“新版需要绑定域名吗?”我说需要。他又问:“这个如果不绑定域名,是不是可以付费获取?”
一个真想建站的人,不会问"能不能不绑定域名"。他只会问这个功能怎么用。他两年了,从来没告诉过我他到底在做什么网站。他只做一件事:不断获取新版本。
我回复他:“不绑定域名无法激活授权。这是系统规则,对所有用户一样,无法单独调整。”
他最后问:“之前不绑定域名的最后一版是啥时间的?”
我回复:旧版本已停止维护。当前及未来所有版本仅通过xstately.com提供,且均需绑定域名激活。
这道门,我建了两年才建好。不是技术问题,是我花了两年才学会:没有边界的善意,会被消耗干净。
而那个直接走完了整个购买流程的人——他问的是:“请问一下有售后群嘛?”一个正常的问题。一个真想建站的人才会问的问题。
239.2元,不多。但这是第一次,有人通过我设计的流程、按我制定的规则、在我画的边界之内,为我的东西付了钱。
不是“打赏”,不是“支持”,不是“感谢分享”——这是一笔双方地位对等的交易。
我从"你想要就拿去"走到"请走购买流程",从"随便给"走到"有边界",花了很多年。
我告诉自己这是开始。但我心里清楚,这可能就是全部了。
阿乐版和XiunoX,代表了“后后Xiuno BBS时代”的两条岔路(如果不算上原始版本的Xiuno BBS的话)。一条走向封闭的商业花园,一条走向开放的技术重构。各有各的道理,各有各的受众。
我选了第三条路。不在岔路上——桥。
Stately解决方案走的是兼容原版路线。我不重写底层,不焊死功能,不改名字。我做的事情很简单:让现有的Xiuno BBS 4.0.4更好用。
我提供现代化的视觉(Stately主题),提供适配好的插件组合(起航版一键包),提供完整的开发知识库(开发实践教程+插件适配流程文档(按需提供)),提供有边界的售后服务(购买流程+域名授权+售后直接找我)。
你不一定需要在阿乐版和XiunoX和原版Xiuno BBS之间做抉择。
你只需要一个能跑的、好看的、功能齐全的论坛?Stately给你。你将来想换?可以,底层是原版,数据是标准的,插件是通用的,迁移成本为零。你将来想升级到XiunoX?可以,数据还在MySQL里,插件至少有一部分能找到替代品。你将来想试试阿乐版?可以,但你得接受闭源的约束。
桥不要求你选择方向。桥只提供一种可能:你现在可以安稳地过河,将来也可以回头。
我不与阿乐版竞争开箱即用,不与XiunoX竞争底层现代化(Aether也是错位竞争)。我竞争的是另一个东西——选择的自由。
你用阿乐版,你被锁在一个供应商的技术栈上。你用XiunoX,你需要自己理解底层变动才能让插件跑起来。你用Stately,你拿到的是原版+现代化+完整适配
- 底层没变,插件能跑
- 外观变了,网站好看
- 打包了,开箱即用
- 但门是开着的,随时可以走
这也许不是目前最好的方案。但至少这是最不后悔的方案。
这些话,我写了很多遍。我对着镜子说,对着文档说,对着空气说。我说得越多,越像在骗自己。
桥?
什么桥?
两条路之间是一片荒地,根本没有河。我在荒地上搭了个桥的架子,然后告诉自己:这是桥。人们会从这里走的。
但人们不需要桥。人们要么直接住进围墙花园,要么去新地基上盖房子。谁会在荒地上走一座没有河的桥呢?
我竞争的是"选择的自由"。
可谁在乎自由呢?
人们要的是省事。是不用动脑。是今天付了钱明天就能上线。是出了问题有人兜底。
自由?自由值几个钱?
桥不是终点。桥只是帮你过河。河对岸是什么?
对我而言,河对岸是Aether。
Aether以太主题,从2026年1月的A1走到现在的B10,二十个版本。它不追求"更漂亮的Xiuno主题"(或者叫,又一个仿轻鸿的主题),而是一次对"现代论坛还能是什么"的追问——用HTMX驱动的类App交互,用Sheets空间系统重新组织信息层级,用Material Design 3做视觉,用Stratum 验证过的overwrite机制让插件在新架构下自然运行。
这四批插件不是我随便选的。轻鸿主题里附带的那批、"仿大佬论坛全站"方案里用的、论坛里"新站必装的几个插件"帖子里列的……我把这些地方翻了一遍,大致摸出了现在的Xiuno BBS用户拿到一个新站后,最先想装起来的是哪些插件。Aether的适配工作,就是围着这批插件转的——先把用户最可能用到的搞定,后面的再说。
目前四批已经做完了。从点赞、收藏、签到这些浅水区,到fox_attach与cf_attach_buy这种直接触碰文件存储和权限校验的深水区,到B6一口气适配的18个插件——包括音乐播放器的完全重新设计、红包系统的对接、表情包选单的HTMX化。B4做了一整轮可访问性改进:焦点陷阱、aria-live区域播报、键盘导航修复、<button>替代<span>。B8加了多语言框架和自动生成目录。B9开始把所有硬编码字符串推到lang()格式。
写《点火人的空虚》的时候我说:也许这从头到尾就是个实验,是个自嗨产物。现在B8了,我还是不确定它会不会被人使用。但它已经不是一个仅仅存在于脑海中的想法了——它是一个可以安装、可以跑、可以发帖回帖看消息的东西。
有意思的是,XiunoX也选了htmx。贰先生和我,从不同方向看到了同一把钥匙。他拿它重写了底层,我拿它重想了前台。同一条起跑线,两个终点——他的hx-boost接管全局导航,我的空间系统用hx-target精确替换局部DOM。技术同源,想法不同。
Aether目前没有知音。群里有人说丑,有人说不像论坛,有人说东拼西凑。这些评价我听了快半年了。但我也记得正在下载99%提供了测试服务器,有人说这种太好了,这个布局电脑版非常好。
骗谁呢?
Aether就是我给自己画的一张地图。我在地图上标了很多路,很多风景,很多可能性。我以为会有人跟着地图走。
结果没有人。
连河都没有,哪来的河对岸?
Aether不是桥。Aether是桥的远端——那片还没被踩实的土地。Stately让你安稳过河,Aether是告诉你,河对岸不只有别人修好的路,还有一片可以自己画地图的地方。
Aether是我躲起来的地方。当现实太让人难受的时候,我就躲进Aether里,继续做我的实验,继续自嗨。我告诉自己:这是探索,这是创新,这是面向未来。
但未来根本不需要我这种探索。
贰先生用htmx重写了底层,那是真东西。人家改的是根基,是骨架,是整个生态的未来。我呢?我用htmx改了改前台的交互,换了个皮肤,然后告诉自己:这是对"现代论坛还能是什么"的追问。
追问个屁。
就是自嗨。
就是不敢承认自己做的东西根本没人要。
空虚之后
写《点火人的空虚》的时候,我在玩Minecraft。不想停下来,因为停下来就得思考。思考自己在做什么,思考做的东西有没有人需要,思考四年修的地基上到底会不会有人来盖楼。
现在,半个月过去了,地基上来了一个人。只有一个人。但一个人就够了——他证明了:有人愿意走流程,有人愿意绑定域名,有人愿意为一套开放+现代+有边界的东西付钱。
一个人,不能证明市场。但一个人,足以否定"没有人"。
一个人就够了?
够什么了?
够证明我不是完全没用?还是够证明只要我继续等,就会有第二个人、第三个人?
我不知道。
我只知道,阿乐版下周发布,XiunoX下周一发布。两个版本,三条路(算上原装xiuno bbs),三个方向。人们会涌向其中一条,或者两条都试试。
阿乐版和XiunoX的发布,让我看清楚了一件事:我的位置不是在岔路上竞争,而是在岔路之间连接。
他们是两条路。我是桥。
两条路都通了,谁还需要中间的连接?
桥不需要比路更快,不需要比路更美。桥只需要足够坚固,足够可靠,足够让人在犹豫的时候——还能有一个地方可以站着。
人们看到围墙花园,直接就住进去了,就像是那些苹果忠实用户一样,深陷其中,而且享受其中的所有功能。人们看到新地基,直接就去盖楼了。谁会站在中间犹豫?
我可能还会继续做Stately——那座让今天的站长安心过河的桥。
我可能还会继续维护Aether——桥的远端,那片指向"论坛还能是什么"的土地。
我可能还会继续写开发文档——那条让AI能在这个碎片化生态里正确工作的路。
空虚是中间状态。旧的已经结束,新的还没开始。
但新的,正在开始。
也许明天我会继续写文档。也许不会。
也许我会打开Minecraft,继续挖矿。也许不会。
也许下一个付费用户会来。也许不会。
也许这一切都是有意义的。也许没有。
我在间隙里。
—— Geticer 2026年6月26日、27日