// the find
monicahq/monica
Personal CRM. Remember everything about your friends, family and business relationships.
Monica is a self-hosted personal CRM (they call it a PRM) built on Laravel. You track people — birthdays, how you met, notes from conversations, activities, addresses — and it reminds you to stay in touch. The main branch is currently a beta rewrite; the stable v4.x lives on a separate branch.
CardDAV/CalDAV sync is a real implementation, not a checkbox feature — there's a full bidirectional sync engine with job queues, etag tracking, and a custom DAV client. The domain structure is disciplined: each feature (ManageGoals, ManageCalls, ManageDocuments) owns its own Services, Controllers, and ViewHelpers, which makes the codebase navigable even at this scale. AGPL license means any SaaS fork has to open-source their changes, which has historically kept the hosted version competitive with self-hosters. Docker image is on Docker Hub official, which means straightforward self-hosting with a single compose file.
The main branch is marked beta and diverges significantly from the stable 4.x branch — if you're deploying today, you're choosing between a stable but potentially aging codebase and an unstable rewrite, with no clear timeline for when main stabilizes. No API layer: there's a DAV sync path but no REST or GraphQL API, so building integrations or mobile clients requires reverse-engineering the web session. The two-person core team is a real bus-factor risk for a project this size; contributor activity exists but deep architectural decisions bottleneck on one maintainer. Search is powered by Laravel Scout, which means you need to configure a driver (Meilisearch, Algolia, or database fallback) separately — the default out-of-box search experience is weak.