Twenty
CRMA modern, open-source CRM you'll actually enjoy using
killsSalesforceHubSpotPipedrive
What it is
Twenty is an open-source CRM built to be the modern alternative to Salesforce — clean UI, fast, and fully yours. It covers the core of what teams actually use: people, companies, opportunities, pipeline kanban views, notes, tasks, and email/calendar sync. Because your data lives in a standard Postgres database you control, you can extend the data model with custom objects and fields, query it directly, or build on top of its API and webhooks.
It’s written in TypeScript (React frontend, NestJS backend) and ships with an official Docker setup, so self-hosting is a first-class path — not an afterthought.
Why it kills the SaaS
Salesforce and HubSpot charge per seat, lock your customer data behind export limits, and nickel-and-dime you for every feature tier. Twenty gives you unlimited seats, unlimited records, and full data ownership for the cost of the machine it runs on. If you can run Docker, you can run your CRM — and stop renting access to your own customers.
Paste this into Claude Code
Set up a self-hosted Twenty CRM on this machine using Docker Compose.
1. Follow the official self-hosting docs at https://twenty.com/developers/local-setup — use the docker compose setup from the twentyhq/twenty repo (packages/twenty-docker).
2. Create the .env file from the provided example, generating strong random values for every secret: the Postgres password, APP_SECRET, and the access, refresh, login, and file tokens.
3. Start the stack with `docker compose up -d` and confirm the server and worker containers stay healthy.
4. Verify the app responds at http://localhost:3000, then walk me through creating the first workspace and admin user.
5. When I'm ready to put it on a domain, set up a reverse proxy with TLS and update the server URL config accordingly.