Review · installed August 2026, prices checked 23 September

Twenty CRM review: the CRM you can version like code.

Twenty is an open-source CRM, mostly under the AGPLv3 license, with about 57,000 stars on GitHub. What sets it apart is that the data model, views, workflows and AI agents can be defined in TypeScript and published from the command line, so the CRM lives in git with the rest of your software. We installed it ourselves with Docker. Self-hosting suits a team with someone technical to own backups and upgrades, and the hosted plans cost $9 or $19 per user per month.

30 min · Fixed quote before we build · Projects from $2,500

What Twenty is

Twenty describes itself as the number one open-source CRM, and its own one-line pitch is the best summary: "the CRM you build, ship, and version like the rest of your stack." It is aimed at teams that find Salesforce or HubSpot too rigid or too expensive, and the older open-source CRMs too dated. Development is active: the repository had been updated on the day we checked.

The license matters only if you plan to change the code. Most of it is AGPLv3. Files marked Enterprise are under a commercial license, and the app development kit, including the SDK and the create-twenty-app scaffolder, is MIT. If you simply run Twenty for your own team, there is no license fee. If you plan to modify it and offer it to others, read the license file first.

What it does differently

  • CRM as code. You scaffold an app with npx create-twenty-app, define objects, fields and views in TypeScript, and ship them to your workspace with npx twenty app:publish. Customizations get code review and version history instead of living in someone's admin settings.
  • Your own data model. Custom objects, fields and relations can also be created in the interface, which feels closer to Airtable than to a fixed schema of leads, contacts and deals.
  • APIs generated from your schema. Each workspace gets REST and GraphQL APIs built from its own objects, so a new object can be queried straight away. Webhooks are included.
  • Workflows and AI agents on every plan, not sold as an add-on.
  • The expected basics: email and calendar sync, roles and permissions, unlimited CSV import and export, and dashboards.

Self-hosting it with Docker

We installed Twenty from the official Docker Compose setup on a Mac. It runs as four containers: the server, a background worker, PostgreSQL and Redis. Four things needed attention along the way. Each has a quick fix, and knowing them in advance saves time.

What we sawCauseHow we fixed it
The install stopped partway through downloading the imagesThe disk was fullFreed space and ran it again. The clean install had 32 GB free
PostgreSQL would not start, with "exec format error"An image damaged by the interrupted downloadDeleted the image and pulled it again
Port 3000 was already in useAn unrelated Docker project had restarted itselfStopped the other containers. Changing Twenty's port works too
The app loaded but could not reach its backendDatabase migrations were still running on first bootWaited a few minutes. It connected once the migrations finished

With those settled, Twenty came up on localhost:3000 with the "Welcome to your workspace" screen and all four containers healthy.

Running it for a team

A laptop install is a trial, since nobody else can reach it. For a team there are two routes: Twenty's hosted cloud, where you sign up and invite people, or the same Docker Compose files on a small cloud server behind a reverse proxy with HTTPS.

Self-hosting for a team takes five things: the server URL set to your real domain, because sign-in callbacks and links are built from it; new secret values generated for production rather than the examples; outgoing email, so invitations and verification messages arrive; HTTPS in front; and scheduled backups of the PostgreSQL volume, because that volume is your CRM.

What it costs

OptionPriceWhat you get
Self-hosted, open sourceNo license feeEverything in the open-source edition. You pay for the server and the hours to run it
Pro, hosted$9 per user per monthCustom apps, AI agents, workflows, standard support
Organization, hosted$19 per user per monthAdds row-level permissions, SAML and OIDC single sign-on, a custom domain, priority support
EnterpriseFrom $50,000 per yearAdds single-tenant isolation and more

Monthly prices from twenty.com on 23 September 2026. Paying yearly is 25% cheaper.

Who should use it

  • Use it if someone on the team is technical, you want your CRM customizations in git, and you would rather not pay per seat for features nobody opens.
  • Choose the hosted Pro plan if you want the product without running it yourself.
  • Look elsewhere if you rely on a large marketplace of ready-made integrations, or if nobody wants to own backups and upgrades on a self-hosted install.

Whichever CRM you choose, the automations around it are the other half of the stack. Our n8n vs Make comparison and GoHighLevel pricing guide cover that side.

Questions, answered.

Is Twenty CRM free?

The self-hosted edition has no license fee: most of the code is open source under the AGPLv3. The hosted plans cost $9 or $19 per user per month, and some enterprise features sit under a commercial license.

Can I self-host Twenty CRM?

Yes, with the official Docker Compose setup: four containers for the server, a background worker, PostgreSQL and Redis. Set up disk space, HTTPS, outgoing email and backups before you invite anyone.

Is Twenty a good Salesforce alternative?

For teams that want a modern, customizable CRM and are comfortable owning it, yes, and its own repository presents it as an open alternative to Salesforce. It does not come with Salesforce's ecosystem of apps and consultants.

Does Twenty have single sign-on?

Yes, SAML and OIDC, on the Organization plan at $19 per user per month.

Does Twenty have an API?

Yes, REST and GraphQL, generated from each workspace's own schema, so custom objects appear in the API as soon as you create them. Webhooks and OAuth are documented as well.

What matters most when self-hosting Twenty?

Backups. Back up the PostgreSQL volume and the encryption key together, on a schedule. Without the key, the encrypted data in the database cannot be read.

Tell us what's slowing you down. We'll show you what to automate first.

Free · 30 min · Projects from $2,500

contact@aistrikeforce.com