Run it yourself
Clone it, bring up the Docker Compose stack, and you have Postgres, Redis, the API, a worker and the web app. Nothing to request and no key to wait for.
Self-hosting guideWhat it does, what it costs, what it runs on, and the parts that are not built yet. The last group is the one most FAQ pages leave out, so it is in here beside the rest.
Nothing here is behind a sales call. The source is public, so you can check any of it.
Open an issue on GitHub if it is a bug or a missing feature, or tell us what you are trying to run if it needs a person.
BottleCRM is a 100% free, open-source Customer Relationship Management (CRM) software built specifically for startups and small businesses. It's free because we believe every business should have access to powerful CRM tools without expensive subscription fees. We make revenue through optional paid support services, not by charging for the software itself.
Yes! BottleCRM core software is completely free with no hidden costs, user limits, trial periods, or subscription fees. You can download, use, modify, and distribute it under the MIT open-source license. The only costs are optional professional services like setup assistance, customization, and hosting support.
BottleCRM provides many of the same core features as commercial CRM platforms but without monthly subscription costs. While enterprise solutions might have more advanced features, BottleCRM covers what most startups and small businesses need: contacts, a sales pipeline, tasks, support tickets with SLA clocks, invoicing, and inbound email that turns mail into tickets. It does not send mail to your customers on your behalf, so it sits beside your inbox rather than replacing it.
BottleCRM is perfect for startups, small businesses, consulting firms, freelancers, real estate agencies, and any organization that needs to manage customer relationships without paying expensive subscription fees. It's also ideal for developers who want a customizable, self-hosted CRM solution.
All features are included. Leads, contacts, accounts, sales pipeline with kanban, opportunities, tasks, customer support tickets, invoices/estimates/recurring billing, org-defined custom fields on every entity, a native Flutter mobile app, a documented JSON API with JWT auth, two roles, and an activity feed on the dashboard. Self-hosted, no per-seat fees, no premium tiers. There are no outbound webhooks, and the CSV importer is built on the backend but not yet reachable from either client.
We sell the two things the software cannot be: hosting you do not have to think about, and people who know the codebase. Managed hosting, migrations, custom development and training are all priced after a conversation, because what they cost depends on your size and what you are moving off. The software itself has no licence key and no seat counter, so there is nothing we could hold back and charge for later.
We run it for you: managed hosting on infrastructure we look after, priority support from someone who knows the codebase, and data migration from the CRM you are on now. It is an ongoing service rather than a one-off setup fee, so it is priced after a call about your size and your uptime needs.
Building things the product does not do out of the box: custom development against your own workflow, integrations with the systems you already run, and onboarding and training for the team who will use it. Every engagement is scoped and agreed in writing before anything is built, which is why there is no list price.
You keep it, and you keep running. It is your database under an MIT licence, so leaving managed hosting means taking over the same software on your own server rather than exporting into a competitor. There is no contract term and nothing to buy back.
Yes. There is no contract term and no notice period to buy out. Managed hosting is a service you can stop, and when you do you take the same open-source software onto your own infrastructure. That is a promise the licence makes, not one we have to keep for you.
Every price we quote is a custom price, large organisation or not. Custom development, dedicated hosting and consulting are all scoped against what you actually need before a number is put on them. Talk to us and the first conversation is about scope, not budget.
Backend: Django + Django REST Framework (Python), Celery for background jobs, PostgreSQL 14+ as the database (the multi-tenant row-level security implementation is Postgres-only), Redis as the Celery broker. Frontend: SvelteKit (Svelte 5 runes) with TailwindCSS 4 and shadcn-svelte components. Mobile: a native Flutter app for Android and iOS that talks to the same JSON API.
Yes! BottleCRM is designed to be self-hosted. You can deploy it on your own servers, cloud infrastructure (AWS, Google Cloud, Azure), VPS, or even run it locally. This gives you complete control over your data and eliminates vendor lock-in.
For production: Python 3.11+, PostgreSQL 14+, Redis 7+, and Node.js 18+ to build the SvelteKit frontend. Minimum hardware is 2 vCPU and 2 GB RAM (4 GB recommended). The easiest path is the included Docker Compose stack, which brings up Postgres, Redis, the Django backend, a Celery worker, and the SvelteKit app in one command. Docker is the only host requirement in that case.
Two ways. The web app is fully responsive on phones and tablets. On top of that, there's a native Flutter app for Android and iOS that talks to the same JSON API, installable from source, with Material Design 3 UI and secure token storage on-device. To be clear about one thing people ask: there are no push notifications. Firebase is in the app for crash reporting on Android, not Cloud Messaging, and notifications are in-app on both clients.
Absolutely! BottleCRM is open-source, so you have complete access to the source code. You can modify the interface, add custom fields, integrate with third-party services, create custom reports, and tailor it to your exact business requirements.
One path, and it is a good one: a fully documented JSON API with JWT auth, an OpenAPI schema, and both Swagger and Redoc served by the backend. The mobile app is a client of it, which is the only guarantee that matters. Google OAuth, magic-link sign-in and SMTP sending are wired in, and inbound email can arrive by webhook from your mail provider. To be plain about the other direction: BottleCRM does not send outbound webhooks, and the CSV importer, though built and tested on the backend, cannot yet be reached from the web app or the phone.
Through the API today. The CSV importer exists on the backend with per-row error reporting, and no screen in either client calls it yet, so a self-service file upload is not something we can honestly offer. For a real migration off an existing CRM, that is one of the things our migration service does; talk to us and we will scope it first.
Free users have access to community support through our GitHub repository, documentation, and community forums. You can report bugs, request features, and get help from other users and contributors.
Managed hosting and support customers get priority over the community queue, and the response target is agreed with you as part of the engagement rather than published here, because it depends on what you are running and how critical it is. We would rather commit to a number in your contract than advertise one we might not hit for you.
Yes. Onboarding and training for the team who will use it is part of an Enterprise Setup engagement, and we can build training materials around your own processes rather than a generic tour of the software. How much is part of the scoping conversation.
Yes! We provide comprehensive documentation including installation guides, user manuals, API documentation, customization tutorials, and best practices. Documentation is continuously updated with new features and improvements.
Absolutely! BottleCRM is open-source and we welcome contributions. You can submit bug reports, feature requests, code improvements, documentation updates, and translations. Check our GitHub repository for contribution guidelines.
Continuously, in the open. Fixes, security patches and features land in the public repository as they are ready rather than on a promised cadence, and you can watch the commit history yourself rather than take our word for the pace. Every update is free for everyone, including the people we host.
BottleCRM is released under the MIT License, which is one of the most permissive open-source licenses. This means you can use, modify, distribute, and even sell BottleCRM without any licensing fees or restrictions.
You own 100% of your data! Since BottleCRM is self-hosted, all your customer data, contacts, sales information, and business intelligence remain on your servers under your complete control. There's no vendor lock-in or data hostage situations.
Yes! BottleCRM follows security best practices including data encryption, secure authentication, SQL injection protection, and CSRF protection. Since you control the hosting environment, you can implement additional security measures as needed for your compliance requirements.
It gives you the foundation, and self-hosting is most of it: the data sits in a PostgreSQL database you control, so export and erasure are operations you can run directly rather than tickets you raise with a vendor. Be aware of what the interface does not have, though. There is no per-entity CSV export and no one-click subject access request, so today those are database work. The policies and the procedures are yours either way.
BottleCRM can be adapted for regulated industries since you have complete control over the hosting environment and data handling. However, you're responsible for ensuring your implementation meets industry-specific compliance requirements (HIPAA, SOX, etc.).
Since BottleCRM is open-source, you'll always have access to the complete source code. Even if we stop development, you can continue using, maintaining, and developing the software independently or with the help of the community.
Which one you want depends on whether the answer is code, a person, or just time to try it.
Clone it, bring up the Docker Compose stack, and you have Postgres, Redis, the API, a worker and the web app. Nothing to request and no key to wait for.
Self-hosting guideBugs and feature requests go to the public issue tracker, where you can also read what everyone else has asked for and what was answered.
Open an issueMigrations, custom development and managed hosting need a conversation first, because what they cost depends on what you are moving off and how big you are.
Talk to usMost of these questions take longer to read than the thing they describe takes to try. There is no trial clock, so there is nothing to spend.