Overview
Discover what makes Monica powerful
Monica is a self‑hosted Personal Relationship Management (PRM) system written in **PHP 8.1+** and powered by the **Laravel** framework. It exposes a RESTful API that mirrors its rich web interface, enabling developers to build custom integrations or mobile clients. At runtime it serves a single‑page application (SPA) built with **Vue.js 3** and **Tailwind CSS**, while server‑side rendering is handled by Laravel’s Blade templating engine for SEO and progressive enhancement. The data layer relies on **MySQL 8+** (or MariaDB) and leverages Eloquent ORM for complex relationships such as contacts, activities, reminders, and custom fields.
Backend
Frontend
Database
Background Jobs
Overview
Monica is a self‑hosted Personal Relationship Management (PRM) system written in PHP 8.1+ and powered by the Laravel framework. It exposes a RESTful API that mirrors its rich web interface, enabling developers to build custom integrations or mobile clients. At runtime it serves a single‑page application (SPA) built with Vue.js 3 and Tailwind CSS, while server‑side rendering is handled by Laravel’s Blade templating engine for SEO and progressive enhancement. The data layer relies on MySQL 8+ (or MariaDB) and leverages Eloquent ORM for complex relationships such as contacts, activities, reminders, and custom fields.
Architecture
- Backend – Laravel 10.x with service‑container binding, event broadcasting (Pusher or Redis), and queue workers for scheduled reminders. All core logic is encapsulated in domain‑driven services, making it straightforward to replace or extend components.
- Frontend – Vue 3 with Composition API, Vue Router, and Pinia for state management. The SPA consumes the Laravel API via Axios; authentication is handled by Sanctum, providing token‑based access for third‑party apps.
- Database – MySQL/MariaDB with a normalized schema. The migration files are versioned, and the project ships with seeders for demo data.
- Background Jobs – Queue workers (Laravel Horizon) process email reminders, notifications, and scheduled tasks. The system can also be configured to use RabbitMQ or Amazon SQS for horizontal scaling.
- Containerization – A ready‑to‑use Docker Compose file defines services for the web app, MySQL, Redis, and a mail driver. The Docker image is maintained on Docker Hub (
library/monica) and can be pulled directly for CI/CD pipelines.
Core Capabilities
- Contact Management – CRUD operations, tagging, custom field types, and multi‑user vaults.
- Activity & Task Tracking – Create, update, and schedule activities; assign tasks to contacts with due dates.
- Reminders & Notifications – Automatic birthday reminders, custom event alerts, and email/SMS integrations via Laravel notifications.
- Diary & Journal – Structured entries with attachments, searchable tags, and per‑day summaries.
- API & Webhooks – Exposes endpoints for all CRUD actions, supports OAuth2 scopes via Laravel Passport, and emits webhooks on key events (e.g.,
contact.created). - Extensibility – A plugin architecture allows developers to add new modules; community plugins exist for calendar sync, CRM export, and custom report generation.
Deployment & Infrastructure
Monica is designed for self‑hosting on Linux servers, Docker Swarm, or Kubernetes. The Docker Compose stack can be scaled by adding more web replicas and a shared database cluster (e.g., Galera). For production, it is recommended to run behind an Nginx reverse proxy with HTTPS termination and a Redis cache for session storage. The application supports environment‑based configuration (.env), making it easy to swap database drivers, mail services, and queue backends without code changes.
Integration & Extensibility
- Plugin System – Developers can create packages that hook into Laravel’s service provider system, adding routes, views, and database migrations.
- API Clients – Official SDKs exist for PHP, JavaScript, and Python; otherwise the REST API follows standard CRUD conventions with JSON payloads.
- Webhooks – Configurable to post to external services (e.g., Zapier, IFTTT) whenever a contact or activity changes.
- Custom Fields & Labels – The schema allows dynamic field types, so developers can expose new data points without altering the core migration.
Developer Experience
The project is well‑documented on docs.monicahq.com, covering API reference, contribution guidelines, and deployment tutorials. Code quality is maintained with automated linting, unit tests (≈80% coverage), and SonarCloud analysis. The community is active on GitHub issues, Discord, and a dedicated Slack channel, providing quick feedback loops for feature requests or bug reports. Licensing under MIT ensures no restrictions on commercial use.
Use Cases
- Personal CRM SaaS – A developer can fork Monica, add custom branding and feature sets, and offer a self‑hosted CRM to small businesses or individuals.
- Family Relationship Tracker – Build a mobile app that syncs with Monica’s API to provide push notifications for birthdays and anniversaries.
- Integration Layer – Use the webhook system to feed data into a larger ERP or marketing automation platform.
- Research Tool – The open schema and export capabilities make it suitable for sociological studies on personal networks.
Advantages
- Full Control – Self‑hosting guarantees data privacy and compliance with GDPR or HIPAA when configured correctly.
- Open Source Flexibility – MIT license and modular architecture let developers add or replace features without vendor lock‑in.
- Performance – Laravel’s caching, Eloquent eager loading, and Redis queues keep response times low even with thousands of contacts.
- Community & Support – Active contributors and extensive documentation lower the barrier to entry for new developers.
- Cost‑Effective – No subscription fees; only infrastructure costs are required, making it attractive for hobbyists and small enterprises alike.
Open SourceReady to get started?
Join the community and start self-hosting Monica today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Plausible Analytics
Simple, privacy‑friendly web analytics
Peergos
Private, end‑to‑end encrypted cloud for the web of your data
Whoogle
Private, ad‑free Google search engine
Gramps Web
Collaborative genealogy web platform
OpenMediaVault
Easy Debian‑based NAS for home and small office
OpenSlides
Digital assembly platform for agendas, motions and elections