Monica: The Self-Hosted Personal CRM for Your Relationships
Professional CRM tools help salespeople manage customer relationships. But maintaining personal relationships — tracking a distant friend's kids' names, remembering when someone mentioned a job change, following up with someone you met at a conference — is essentially the same problem at a smaller scale.
Photo by Luke Madziwa on Unsplash
Monica is a self-hosted personal CRM. It stores context about the people in your life, logs your interactions, tracks important dates, and sends reminders. Not for sales — for being a thoughtful person.
What Monica Tracks
Contacts:
- Name, birthday, anniversary, and relationship type (friend, family, colleague, etc.)
- How you met, where they live, their occupation
- Significant others and children (with their own birthdays)
- Phone numbers, emails, and social media handles
Interactions:
- Conversations: log what you talked about with a date and summary
- Activities: log things you did together (dinner, hike, meeting)
- Phone/email reminders for people you haven't talked to in a while
Notes:
- Free-form notes attached to a contact — useful for context you'd forget
- "She mentioned she's looking for a new job" or "doesn't drink coffee"
Reminders:
- Email reminders for birthdays, anniversaries
- Custom reminders: "Follow up about the book I lent him" in 2 weeks
- Life events: when someone has a baby, gets married, moves
Why Keep a Personal CRM
People who maintain personal CRMs often describe it the same way: it's not about replacing genuine connection, it's about not letting connection fail because you forgot to follow up.
Without any system:
- You remember a friend's birthday for close friends but miss distant ones
- You mean to follow up after a coffee but life happens
- Years pass and you lose touch with people who mattered
Monica externalizes the memory work so you can focus on the relationship itself. When a friend mentions they're moving, you log it. Three months later, Monica reminds you to check in on how the move went.
Docker Deployment
Monica requires MySQL or MariaDB:
services:
monica-db:
image: mariadb:11
container_name: monica-db
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: rootpassword
MARIADB_DATABASE: monica
MARIADB_USER: monica
MARIADB_PASSWORD: monicapassword
volumes:
- monica-db:/var/lib/mysql
monica:
image: monica:4
container_name: monica
restart: unless-stopped
depends_on:
- monica-db
ports:
- "8084:80"
volumes:
- monica-storage:/var/www/html/storage
environment:
APP_KEY: base64:your-32-char-random-key-here
APP_URL: https://monica.yourdomain.com
DB_CONNECTION: mysql
DB_HOST: monica-db
DB_PORT: 3306
DB_DATABASE: monica
DB_USERNAME: monica
DB_PASSWORD: monicapassword
MAIL_MAILER: smtp
MAIL_HOST: smtp.example.com
MAIL_PORT: 587
MAIL_USERNAME: [email protected]
MAIL_PASSWORD: your-password
MAIL_FROM_ADDRESS: [email protected]
MAIL_FROM_NAME: Monica
volumes:
monica-db:
monica-storage:
Generate APP_KEY with: docker run --rm monica:4 php artisan key:generate --show
Navigate to http://your-server:8084 and create your account.
Like what you're reading? Subscribe to Self-Hosted Weekly — free weekly guides in your inbox.
First Use
After creating an account:
Add contacts: Start with people you actually want to maintain connections with — not everyone in your phone book. Quality over quantity.
Log recent interactions: Think back over the past month and log conversations you remember. This seeds the system.
Set birthday reminders: Add birthdays for people whose birthdays you want to remember. Monica sends email reminders.
Add notes to existing contacts: "We met at [conference] in 2023", "Interested in woodworking", "Has a startup working on [X]"
The Contact Page
Each contact has a rich page with:
- Relationship map: How you're connected to them and who else they know in your network
- Recent activities: Timeline of interactions
- Notes: Context and details
- Upcoming events: Their birthdays, anniversaries
- Reminders: Upcoming follow-ups you've scheduled
The relationship map shows mutual connections — if Contact A introduced you to Contact B, Monica shows that relationship graph.
Reminder System
Reminders are the most practical feature. Monica can send:
Automatic date reminders: Birthdays, anniversaries — configured per contact.
One-time reminders: "Call her about the book in 2 weeks" — you set the date.
Contact frequency nudges: If you set a contact as "close friend" and haven't logged an interaction in 3 months, Monica flags it.
Reminders arrive via email (SMTP configuration required) or via the app dashboard.
Import from Google Contacts
Monica can import contacts from a Google Contacts (VCF/CSV) export:
- Go to contacts.google.com → Export → Google CSV
- In Monica: Settings → Import → choose file
- Monica creates contacts with names, emails, and phone numbers
You'll still need to manually add notes and relationship context — that's the value you bring, not what Monica can import automatically.
Multi-User Support
Monica supports multiple user accounts sharing a Monica instance. Family members or close collaborators can use the same instance with their own separate contact databases.
This is different from contact sharing — each user's contacts and notes are private. Multi-user just means one Monica server serves multiple people.
Monica vs. Twenty (Open-Source Salesforce Alternative)
Monica and Twenty target different use cases:
| Monica | Twenty | |
|---|---|---|
| Focus | Personal relationships | Business CRM |
| Pipeline tracking | No | Yes |
| Deals/opportunities | No | Yes |
| Team features | Basic multi-user | Full collaboration |
| Contact depth | Rich personal context | Business-oriented |
| Complexity | Simple | Complex |
For personal relationship management, Monica's design is more appropriate. Twenty is the right choice if you're building a business CRM workflow.
Privacy Considerations
Self-hosting Monica means your relationship data stays entirely under your control. Unlike a cloud service, there's no data sharing with third parties, no ads, and no risk of the service being shut down.
For people who value privacy around relationship data — knowing who you talk to, what you discuss — self-hosting is the appropriate choice.
Monica's repository is at monicahq/monica with active development. The commercial cloud version is at monicahq.com if you want hosted access.
