// HACKER NEWS — CYBERSECURITY
We Are Rebuilding Monica
We are rebuilding Monica from scratch, and this new series will document how.
This is the first article in a series called Building Monica. I want to use this series to document the process of rebuilding Monica, the open source personal CRM, from scratch. I'll talk about the problems we're trying to solve, the decisions we make along the way, and probably some of the things that don't work as expected.
Almost ten years ago, I started building Monica because I was terrible at remembering things about people. I would forget the name of someone's child, what we had talked about the last time we met, or something important they had told me a few months earlier. I wanted a place where I could write these things down, mostly to compensate for my bad memory, so I started using a professional CRM.
It wasn't a great solution. The software was made for salespeople, which I wasn't, and I didn't particularly want to pay for a tool designed to help me make money when all I wanted was to remember things about my friends and family. I looked for something more appropriate and couldn't find it, so I decided to build my own.
That small project eventually became Monica. I put the code on GitHub, posted it on Hacker News, and things went a little crazy from there. It turned out that I wasn't the only person looking for something like this. Alexis eventually joined me as a co-founder, and over the years thousands of people have used Monica, contributed code, translated it, reported bugs and installed it on their own servers. The project now has more than 25,000 stars on GitHub and has become one of the most well-known open source personal CRMs.
I'm very proud of what Monica has become. But after working on it for so long, I've reached a point where the current version is no longer the personal CRM I would build today.
When I started Monica, I obviously didn't have ten years of experience thinking about how to represent personal relationships in software. Most decisions were made when a problem appeared. We needed contacts, so I built contacts. We needed relationships, so I added relationships. Then came reminders, activities, gifts, notes, pets, addresses and many other features.
There is nothing particularly wrong with building software this way. It's how Monica grew, and many of those decisions made sense at the time. But after almost ten years, they accumulate. New ideas have to work around decisions made years earlier, and things that once looked like implementation details slowly become constraints on what you can do with the product.
Over time, this has made some parts of Monica harder to change than they should be. More importantly, I've changed my mind about some of the original decisions.
At some point, I started asking myself a simple question: if Monica didn't exist, and I had to build a personal CRM today with everything I've learned over the last decade, what would it look like?