独立开发·阅读约 1 分钟·
Monica 创始人宣布推倒重来:做了十年开源个人 CRM 后,我理解了当初不懂的问题

Monica 创始人宣布推倒重来:做了十年开源个人 CRM 后,我理解了当初不懂的问题

开源个人 CRM Monica 的创始人宣布从零重建 v3。十年间他积累了对「人际关系数据建模」的全新理解:关系应该是独立领域而非联系人属性,自定义应该反转设计方向。

原文来源:We are rebuilding Monica — 开源个人 CRM Monica 创始人宣布从零重建 v3,并开启「Building Monica」系列记录全过程

Monica 可能是开源圈最知名的个人 CRM:2.5 万+ GitHub stars,被全球成千上万用户自部署、贡献代码、翻译和上报 bug。但它的创始人 Régis 最近宣布了一个重大决定:把 Monica 推倒重来,从零构建 v3,并且用一系列公开文章记录整个过程。

「Building Monica」系列的第一篇,讲的是过去十年里他对这个产品最根本的认知变化。

一切从「记不住人名」开始

故事的起点很朴素:Régis 总是记不住别人的事——孩子的名字、上次见面聊了什么、几个月前对方告诉过他的重要事情。他需要一个地方记下这些,于是开始用一款面向销售人员的专业 CRM。

但那是为赚钱的人设计的工具,他并不想为一个「帮自己记住朋友和家人」的需求付费。找了半天没有合适的,他干脆自己写了一个。代码发上 GitHub、贴到 Hacker News,事情就失控了——原来有这么多人需要这样的东西。Alexis 后来加入成为联合创始人,Monica 慢慢长成开源圈最知名的个人 CRM 之一。

—— 广告 ——

十年后的灵魂拷问

产品做到第十年,Régis 开始问自己一个简单的问题:如果 Monica 今天不存在,我带着这十年的经验重新设计一个个人 CRM,它会是什么样?

这个问题很快把他引向比「该加什么功能」更基础的地方:在 Monica 里,「一个人」到底是什么?人和人之间的关系该怎么建模?用户自己该怎么被表示?如果一个人生命中重要的不是另一个人,而是一只动物、一个组织,怎么办?人际关系不按日程表走,提醒功能该怎么设计?「活动」应该代表什么?这些问题里有多少本该由用户自己定义,而不是由软件替你决定?

以关系为例。记录「Monica 是 Ross 的妹妹」看起来不复杂,但关系是对称的——Ross 同时也是 Monica 的哥哥;父母关系蕴含子女关系;有的关系有方向,有的没有。现实家庭里还有离异、再婚、继子女、同父异母、领养等各种结构,根本塞不进预设列表。不同文化对亲属关系的描述方式也不一样。

「我花了大量时间思考新版本如何处理这个问题,现在我意识到:关系应该是一个独立的领域,而不是贴在联系人身上的一个属性。现在看这几乎是显然的,但设计第一版 Monica 时,我们根本没有这个认识。」

自定义:方向要反过来

另一个认知反转发生在「自定义」上。历史上,Monica 的思路是:先定义「联系人」是什么、能存哪些信息,然后在这个结构外围加自定义能力。

v3 要把这个方向倒过来:Monica 仍然提供好的默认值——毕竟没人想在添加第一个联系人前先配置五十个选项——但你的生活不应该被迫去适应我们替你决定的数据库 schema。

一旦在这个层面改变,重画几个界面就不够了,地基也得跟着动。

v3 想成为什么

Régis 明确表态:v3 不是现有产品换个更好看的界面。界面会大幅变化,他希望它比今天绝大多数软件更 playful、更个人化,但这只是工作的一部分。

他想要的是一个「记录人生中的人和关系」的强大系统。他不打算为「简单」牺牲一切——如果优化到极致简单的结果是只能表达简单的人生,那不值得。更好的路径是:不想配置的人用好的默认值开箱即用,想深度定制的人拿到极大的控制权。

具体来说:

  • 关系成为一等公民:让用户决定什么信息对他们重要
  • 超越预设字段列表:Monica 要能处理远超「联系人身上贴一排字段」的复杂度
  • 但绝不做成「管理亲友的企业软件」——那会很可怕

什么不会变

有变化,也有坚持。两个原则雷打不动:

  • 隐私和数据所有权:项目继续开源、继续支持自托管。把人生中最私密的信息交给软件存上几年,用户理应拥有最大程度的控制权
  • 软件不替你定义「谁对你重要」:它可以帮你记住、整理、提醒你「好久没和某人联系了」,但关系本身仍然是你自己的

带着十年经验重新开始

「重新开始」当然不完全准确。2017 年做 Monica 时,他只有一个想法和一个想解决的问题;这一次,他带着十年围绕这个问题的经验、数千次用户对话、来自世界各地的贡献、两代产品,以及一长串「不会再这么做」的清单。

他计划在 v3 的开发过程中持续公开记录:「Monica 看起来很简单,但背后有数量惊人的难题——尤其是当你认真思考关系、提醒、自定义,以及如何在一个数据库里表示一团乱麻的人类生活时。」他会写这些难题,也会写技术决策和设计决策,还包括那些试了但没走通的路。

频率上他不做承诺:「我不会为了发布而硬造一个发布计划。有值得写的东西时我就写。」

独立开发者的启示

对做产品的独立开发者来说,这篇公告最有价值的不是「Monica 要重构了」这个新闻,而是背后那条思考路径:

长期维护一个产品,最大的资产不是代码,而是对问题域的理解深度。 十年前你基于当时对问题的理解做设计决策,那些决策会累积成产品的地基;十年后理解变了,地基就得跟着变。Régis 最坦诚的地方在于承认:当年「联系人 + 属性」的模型之所以理所当然,不是因为它是正确答案,只是因为当时没想明白。

另一个值得注意的点是公开重构的选择。大多数人重构是闷头干,他选择把过程写成系列文章——这既是给社区的交代,也是一次难得的「产品决策透明化」实验。对 Monica 这种社区驱动型项目,这种透明度本身就是信任资产。

接下来的文章会讲具体的难题和技术决策。对于所有维护过「做了很久的老产品」的开发者,这个系列值得追。

分享到
微博Twitter

© 2026 四月

原文链接:https://www.aprilzz.com/indie/rebuilding-monica-open-source-crm