Introduction
BottleCRM is an open-source, self-hosted customer-relationship platform built for teams that want to own their data and avoid per-seat subscription fees. It ships with the modules you would expect (leads, contacts, accounts, opportunities, tasks, tickets, invoices), plus a mobile app and a JSON API.
What you get out of the box
- Backend: Django + Django REST Framework, JWT auth, Celery for background jobs, PostgreSQL with row-level security for multi-tenant isolation.
- Web app: SvelteKit (Svelte 5 runes) frontend with Tailwind 4, shadcn-svelte components, and a kanban-style pipeline view.
- Mobile: Flutter app for Android and iOS that talks to the same JSON API.
- APIs: every entity is fully accessible over HTTPS with paginated list endpoints, filtering, and custom-field support.
How the docs are organised
- Getting Started: install BottleCRM and create your first lead.
- Features: what each module does and how to configure it.
- Self-hosting: Docker, Postgres + RLS, environment variables.
- API reference: authentication and endpoint examples you can copy.
- Integrations: ready-to-run code samples against the JSON API.
- Mobile app: installing and connecting the Flutter app.
Licensing
BottleCRM Community is MIT-licensed. An Enterprise edition adds workflow forms, an internal blog, a richer dashboard, and superadmin tooling. It extends the community codebase rather than replacing it, so everything you learn here applies to both.
Looking to evaluate quickly? Jump straight to the Quick start, five minutes to a running CRM with seeded sample data.