一位有4年经验的软件工程师,用了101天,从零搭出一个可运行的社交网络。项目名叫Vlox,仓库初始化于2026年7月8日,如今已完整托管上线。

打开网易新闻 查看精彩图片

作者Seif明确表示反感“vibe-coding”,更愿意手工设计架构。他给Vlox定的目标很直接:做一个干净、快速的开发者社交网络,同时证明不依赖React这类重型客户端框架,也能构建安全的Web应用。

技术栈的选择逻辑

后端选了Node.js。理由是其异步、非阻塞特性,在单台服务器上同时处理大量请求时有优势。前端没有上主流框架,而是用Cash——一个仅3KB的DOM操作库,语法仿jQuery,配合经典的服务端数据处理。作者的解释是:Vlox不打算做成巨型应用,这个选择够用。

数据库用MongoDB,通过Mongoose接入。判断依据是Vlox不需要JOIN,选SQL没有必要;而MongoDB的JSON式格式与JavaScript技术栈配合顺畅。

点赞功能里的一个工程决策

处理帖子点赞时,作者做了一个容易被忽略的选择。每次点赞,帖子文档里的likes字段通过updateOne原子自增1,同时向likes集合写入一条带唯一索引的新文档。

不少开发者会跳过事务,但这里会埋下同步问题。如果服务器在自增之后、写入新点赞记录之前崩溃、报错或断连,数据就会错位:帖子上的点赞数会高于likes集合里的实际记录数。更麻烦的是,由于没有记录能证明该用户已经点过赞,他可以再点一次,把计数继续推高。

所以作者把两步都放进事务里,任一步失败就自动回滚。至于MongoDB跨文档检查唯一索引带来的性能开销,他的判断是Vlox目前不面向数十万级用户,不构成问题。他的原话意思是:工程上只需为具体应用规模做对的取舍。

代码与访问

Vlox完全开源,代码在GitHub上可查。线上地址已开放,作者提醒首次加载可能需要60到90秒,原因是冷启动。他也公开征集技术层面的反馈。

这个项目的看点不在功能规模,而在取舍的自觉:3KB前端库、无JOIN的文档数据库、为小规模场景保留事务——每一步都对应着明确的规模假设。