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 — webhooks and ready-to-run code samples.
- 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.