A free, self-hosted, multi-tenant CRM built with Django REST Framework, SvelteKit and Flutter.
BottleCRM is an open source CRM you run on your own infrastructure. It covers the full customer lifecycle: leads, accounts, contacts, opportunities, support tickets, tasks and invoices: through a SvelteKit web app, a native Flutter mobile app, and a documented REST API sharing one Django backend. PostgreSQL Row-Level Security isolates each organization's data at the database layer, so a single deployment serves one startup or hundreds of tenants.
No per-seat pricing, no user caps, no feature paywall. MIT licensed: fork it, self-host it, own your data.
Try it free → · Features · Product docs · Pricing · Migrate from Salesforce or HubSpot
(That's the marketing site's product documentation. For the technical documentation (self-hosting, architecture, the API, contributing) see Documentation below.)
- Free forever, MIT licensed: unlimited users and records, no subscription. A genuinely self-hosted CRM alternative to Salesforce, HubSpot and Pipedrive.
- Multi-tenant by design: PostgreSQL Row-Level Security enforces tenant isolation in the database, not just in application code. Run it for a single company or as a SaaS for many.
- Agent-ready REST API: point Claude, Cursor, Codex, Gemini or any agent at the API with a personal access token and let it search, create and update records as you, inheriting your role, org and permissions. An OpenAPI schema ships with it, so the agent can discover the endpoints itself.
- Web, native mobile and API: one Django REST backend behind a Svelte 5 web app and a Flutter app for iOS and Android.
- A stack you can actually hack on: Django 6 / DRF and Svelte 5, not a bespoke in-house framework. If your team writes Python, it can extend this on day one.
- Real support tooling: a full helpdesk with SLA timers, approvals, escalations, macros and a knowledge base, not a bolted-on ticket list.
| BottleCRM | SaaS CRM (Salesforce, HubSpot) | Typical open source CRM | |
|---|---|---|---|
| Cost | Free, unlimited users | Per seat, per month | Free core, often paid tiers |
| Hosting | Self-hosted (managed hosting available) | Vendor cloud only | Self-hosted |
| Data ownership | Total. It is your database | Vendor-controlled | Total |
| Multi-tenancy | Database-level RLS | Not applicable | Uncommon |
| Native mobile app | Yes, Flutter, iOS + Android | Yes | Uncommon |
| AI agent access | Full REST API, per-user tokens | Proprietary add-ons | Uncommon |
| Stack | Django REST + SvelteKit | Closed source | Varies |
| License | MIT | Proprietary | Varies, often GPL/AGPL |
git clone https://github.com/django-crm/Django-CRM.git
cd Django-CRM
docker compose up --buildFrontend at http://localhost:5173, API and Swagger UI at http://localhost:8000/swagger-ui/. See the Docker quick start guide for the default admin login, loading demo data, and what each service does.
The full documentation (setup, self-hosting, architecture, the REST API, and contributing) is
built from this repository's docs/ with MkDocs Material and publishes to Read the Docs
at https://django-crm.readthedocs.io/en/latest/. Four starting points:
- Getting started: Docker and manual setup, first sign-in, demo data.
- Self-hosting: requirements, production deployment, PostgreSQL and Row-Level Security, backups, security hardening.
- API reference: authentication, conventions, and every documented endpoint.
- Contributing: local development setup, testing, code style, and how to open a pull request.
We welcome contributions! See CONTRIBUTING.md for setup instructions, development checks, and pull request guidance.
- Issues: GitHub Issues
- Twitter: @micropyramid
- Commercial Support: Contact us
This project is licensed under the MIT License - see the LICENSE file for details.
We are grateful to the sponsors who support BottleCRM's continued development and maintenance.
We warmly welcome new sponsors. If you would like to support BottleCRM and help the project grow, please get in touch.
This project exists thanks to all the people who contributed.