We are rebuilding Monica
monicahq.com
monicahq.com
I’ve become so cynical this year.
sorry don't understand the relationship here...?
> cynical: contemptuously distrustful of human nature and motives; based on or reflecting a belief that human conduct is motivated primarily by self-interest
Once I’m done integrating blockchain technology and minting NFTs, I’ll catch up to modernizing for agentic development.
The sort of "eternal addition" glomming of code that leads to tears on older codebases... I don't really see why agentic development avoids this. And I think there are arguments that it _accelerates_ it (but I'm pretty open to nuance on that side of the fence)
https://www.joelonsoftware.com/2000/04/06/things-you-should-...
I predict AI will cause the number of rewrites people ask for to go down.
AI is better at doing Ship of Theseus rewrites too, and those are the superior option because they leave the system available for hotfixes at all times.
there's good skills to write test suites but each codebase needs its own bespoke implementation paired with so much institutional knowledge. but companies keep laying off those knowledge holders and QA to boot
it's almost like shareholders > leadership > middle managers see 'enshittification' as aspirational and are doing their best to implement a systems-level strategy in pursuit of it
None of your users or managers think about errors as fraction of interactions. Even despite trying to label things as 99.99% reliable. Some managers will claim they do, but they aren’t being honest with themselves. Usually when they get mad it will be about having to deal with a problem happening twice in a week or a month. So now they’re yelling at you while you want to yell at them about being dishonest.
for all of it's vaunted 'big data' and 'metrics-driven outcomes' and whatnot, as soon as a single medium-to-large user starts complaining about an obscure component or wanting new features it was all hands on deck, roadmaps be damned, data out the window, who cares about CVEs/tech debt/fixing MVPs, let's do it MVP (again) instead of building something maintainable and extensible and then forget all about it like a child with ADHD when the next largeish user sends your C-suite an angry DM
meanwhile the core features that most people are happy with and the entire reason they chose your solution gets ignored and one day you look in your lunchbox and the food is all gone and C-suite's golden parachuted out to some cushier job somewhere else
As someone once put it, we should learn from the noble mule, who when beaten is more likely to stubbornly sit down and refuse to move than to get on with the work at hand.
"rewrite in python." "no, let's try rust."
"I don't like the grand piano in the basement, let's see how it looks upstairs"
> It’s harder to read code than to write it.There. Fixed it for you.
That's the kinda thing we should be building and supporting together.
I may start using it, even if that's a highly marketed phrase just because it's so much better than, "CLICK HERE TO LIKE AND SHOW PEOPLE HOW MUCH GOOD YOU ARE AND HERE ARE POINTS YOU CAN MEASURE AND NOW WE OWN YOUR WHOLE LIFE HISTORY ALSO GIVE US MONEY AND HERE'S AN ADVERTISEMENT FOR YOU KTHXBYE".
And yes, that's exactly what I hear in my head when I hear someone works for Facebook or Google or the socials out there that aren't decentralized or at least trying to be some form of humane. Sorry, I don't know you, but you choose to work there. That's the image you're siding up to.
/rant
> This means treating relationships as first-class concepts and letting people decide what information matters to them.
Uh? This is a CRM, even a personal one. How do you get to v3 and "the relationship you have with the person you are capturing hasn't been a priority"?
In the article's words:
> Relationships are a good example. Storing that Monica is Ross's sister doesn't seem particularly complicated. But if Monica is Ross's sister, Ross is also Monica's brother. A parent relationship implies a child relationship. Some relationships have a direction while others don't. Real families include divorces, remarriages, stepchildren, half-siblings, adoption and all sorts of structures that don't fit nicely into a predefined list. Different cultures also describe family relationships differently.
> I've spent a lot of time thinking about this for the new version, and I now see relationships as their own domain rather than an attribute attached to a contact. It seems obvious to me now. It wasn't obvious when we designed the first versions of Monica.
Huh. Those sound like the sorts of things that sound trivial until you actually try to build them, and that they're re-engineering the model to correctly handle all the unusual edge cases.
Those , and other factors are more influential than facebook. If anything, facebook helped remote friendships stay connected ( better than phone, letters).
That seems implausible to me. I think at best you could claim that cause and effect are quite tangled here.
That's what I mean about reversing cause and effect. There are larger causes (see my other comment below) that Facebook was innovative to take advantage of.
It feels like people put more value on memorizing facts than writing them down, as if it’s somehow more noble to remember something about someone, but if you write it down to not forget it, it’s suddenly not as valuable a gesture.
I never understood that.
I had a problem (bad memory), I cared enough to find, and create a solution, and consistently use and maintain it, it’s way more work that I’m putting in to make sure I remember things about the people I care about vs just having it memorized better than another person by the virtue of my genetics.
This is not a criticism or a shot at smugglerFlynn here though, they already said they’re not the target audience. It’s just my personal experience and this looked like a good starting thread to post it under.
Turns out most people are not even trying to juggle all these facts. Interestingly, just removing this pressure helped to remember more about the people I care about.
Not saying this will work for you (everyone is different), just sharing my 2c.
I have a Notes.app record listing my coworkers and the important things I want to remember about them. I wish I could remember all these things without writing it down, but I can't, even when it's important to me and something I'm genuinely interested in. Something like Monica to keep track of all those social details in an organized, completely private and self-hosted way, would be a godsend for me.
And there are events less personably important to me that matter to others, like “tell your son happy anniversary!” I barely know their kid, but it makes the person hearing it happy that someone thought of a nice happening in their life. Now their day is slightly brighter. Darned if I’d ever remember that without something to nudge me.
I mostly skimmed this announcement, but this seems pretty obvious to me? Relationships form a graph, so it seems reasonable to use graph modeling techniques to handle them. At the least RDF triple style [1].
One thing I'd also strongly consider, in this age of LLMs, is how much you can store in text. A personal CRM seems like the kind of thing I want to check in to github, rather than deal with Postgres or even SQLite. And if you have a good structured text format (e.g. Markdown with YAML frontmatter, XML, json) then you can just point an agent at a repo and extract information that the app developer didn't even expect or add APIs for. Same for transformations. A full db engine is then more a performance optimization that can be applied for app-specific functionality.
For me the problem was the interface. Logging in to keep notes was a pain, I'm not that diligent. Instead I now can keep a local db with claude. It's sad, but this is precisely one example of software I can now do without due to LLMs.
If this matters to the devs, then MCP is a good feature to add, encpasulating all the strangeness of CRM w/ battle tested backend or something...
I built a few workflows around a notes db in aws, a telegram bot to send quick notes w/o keeping claude up, zotero connectors for literature tracking, etc.
Nothing really beats just "organize this folder and keep track of notes that I share". It'll invent some markdown + tags and that's good enough. Easy to overthink a list of names + maybe .jsonl entries of encounters + maybe a list of factoids. If you need phone access, /rc works fine
Chandler/Monica 2 (v5.x) was a bit of a disaster for Monica. The communication around it was confusing from the start: they stopped accepting pull requests for the original version to focus entirely on the new release – which then never materialised beyond betas. That killed development of the main version for a while, until they eventually started releasing minor v4.x updates alongside the v5.x betas.
On top of that, they said you might not be able to import data from Monica v1–v4 into Chandler/Monica 2 (v5) due to a database layout change. Reading that sort of killed my use of Monica as a product.
I’d been a heavy user up to that point, but the thought of burying my data in a version that might be abandoned soon really put me off.
I’d been a small but fairly consistent contributor before Chandler/Monica 2 was announced, but between the confusing roadmap and possible data migration barrier, I haven’t contributed since.
> Relationships are a good example. Storing that Monica is Ross's sister doesn't seem particularly complicated. But if Monica is Ross's sister, Ross is also Monica's brother. A parent relationship implies a child relationship. Some relationships have a direction while others don't. Real families include divorces, remarriages, stepchildren, half-siblings, adoption and all sorts of structures that don't fit nicely into a predefined list. Different cultures also describe family relationships differently.
My opinion: this stuff doesn't matter at all and is not useful for Monica to try to capture or model.
If I meet someone at a conference or have a phone call with a long distance friend, I want to remember what we talked about. If they mention that they're planning a vacation to Thailand, the next time I talk to them, I want to say, "How was your vacation to Thailand?" I don't need software to graph all of the people in their family or to pick out "met this person at a conference" from a dropdown of 1000 options. I definitely don't need software to natively represent that two people have a half-sibling relationship as opposed to full siblings.
I switched to just plain markdown files, and I never missed the relationship modeling feature of Monica, but I would like a tool that does things plaintext can't like remind me to reach out to someone I haven't spoken to in a while or remind me to follow up with someone (e.g., they're interviewing for the next few weeks so check in next month to see how that's going).
I really like obsidian for this, as you can model relationships (eg via tagging) if you derive value from it.
I know very little about the Monica ecosystem but how come you're throwing away a second version as well? What were the flaws in that iteration?
Chandler/Monica 2 (v5.0.0-betas) never made it out of beta. It’s had five beta releases but no stable release. The stable 4.1.2 version is actually still the original Monica 1.
For me it’s Notes.app, and I appreciate the notes being available offline and syncing across devices. Full text index is great.
I guess I’m lacking calendar invites, but I’ve been able to copy contents into AI to have it generate calendars for me.
I also don't keep dossiers on all my friends, so for me the entire premise is just academic.
I'm agnostic about a rewrite, I never used Chandler and as far as I'm concerned it's perfectly serviceable for me the end user as it is. I rarely use the UI. I have been contemplating interacting with it more agentically, maybe having a bot update the record that I had a beer with someone instead of doing it by hand, but I like that it's focused.
I have started musing about how I might bridge it to other systems, like the people I have resolved from faces in my Immich photos, but I neither want or expect Monica to do this for me.
Seems the self-hosting documentation is a bit... lacking. Both "self-hosting" buttons on the main page send me to "#".
It seems interesting, even though I'm more of the roll your own school of thought here because there could be some very sensitive data in this system.
That's linked from their GitHub: https://github.com/monicahq/monica
PikaPods also offers Monica hosting in your own container.
My own instance is still on 4.0.0 despite 4.1.2 being out because I don’t see a benefit in updating and I don’t want to risk spending three or four hours hunting through yarn dependencies to undo an update that breaks things.
But this is one of those instances where I appreciate opinionated software reminding me to invest in what matters in relationships.
As such, my rules for a personal CRM are as follows:
1. No server to maintain; it should be an old school piece of software that I can install on my PC/phone etc.
2. I like the idea of being able to update it from different locations and using different devices; the only service acceptable here is for the makers to either offer a paid-for sync service or a method for users to sync the data between devices themselves. Not an essential service to me though.
3. No unencrypted data should be allowed, regardless of whether it stays local or it's synced across devices, or whether it's live or a backup file.
4. Backup, import, and any data handling should be easy as a breeze. Should I open my backup / db export done with version 1.0 with a fresh installation v9999 it should work flawlessly, no errors, no hiccups, no file corruption, no issues whatsoever. That data is the one reason for the software to exist and the only valuable entity in the whole scheme; if it becomes unusable, it's beyond frustrating and not a good solution to even consider.
5. No updates should be forced, ever. If my OS supports version 0.5 until year 3500, the CRM should continue work as expected. Security updates should be entirely separate than feature / bugs etc. I accept security updates within reason, in many cases I would much rather risk my PC to be hacked and data to fall in the wrong hands, than corrupt it or lose it due to some feature update I never requested or needed.
A personal CRM sounds like a very interesting idea but I would feel weird building profiles on people like that.
Their best bet would be to train a model and provide an enhanced notepad and chat interface that extracts the relationship details directly from conversations.
The code base and logic is complex enough that it's hard to fix bugs and add features nowadays since they're few and far between. The test coverage is the only thing that makes it remotely possible.
I've considered doing the same, rewriting it so that AI can reason about it better. I think it would be a net positive compared to where it is today. But it's also stable, as I mentioned, so I don't have enough motivation to do it.
Just saying, I can see myself doing what this person is doing.