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.