Deslus.
21 tools in production My services

Open Source CRM: The Practical Costs of Self-Hosting

Twenty gives you a free AGPL core you can reshape yourself. This page counts the server, licence and migration limits before you choose.

Louis Deslus 4 Nov 2026
Twenty CRM. Read the tool page for what it costs and what it is not for.

Pick Twenty if you want an open source CRM you can self-host for free and still reshape without code; pick SuiteCRM if refusing per-user fees is the whole point; pick EspoCRM if you want the cheapest hosted fallback next to your own server. The test that decides is small: run Twenty's 30-day trial for one real client, and in parallel spend an evening on its Docker install. If the evening goes well, self-hosting is for you; if it does not, the yearly-billed 9 dollar cloud seat was never the expensive part.

Our own Twenty deployments run on the vendor's cloud, one workspace per client, a position recorded on the fiche; we have not operated a self-hosted instance on our own servers, so everything about Docker, licences and server requirements below is sourced from the vendor's own pages, not from our racks.

Count what self-hosting actually costs

Twenty's core sits under the AGPLv3 licence, and their own FAQ states that self-hosting the open source core is free. SuiteCRM's pricing page makes the same promise from the other direction: no per-user licensing fees, ever, with their managed hosting starting at 50 pounds a month if you outsource the servers to them.

Twenty's Docker Compose documentation asks for at least 2GB of RAM and an up-to-date Docker and Docker Compose, plus an encryption key you generate yourself and a pinned release tag such as v2.38.1, because the install script rejects aliases like v2 or latest. That is a real block of work for one person, and then a recurring job: upgrades, backups, and the S3 storage variables that, if left empty when STORAGE_TYPE is set to S_3, break every upload according to the same documentation. A 2GB machine costs single-digit dollars a month; the person who watches it does not.

The honest comparison is therefore not between 9 dollars and 0 dollars. Twenty's cloud Pro plan is listed at 9 dollars per user per month on their pricing page, and that page shows the figure as the rate billed yearly, with a monthly-billed state 25 percent higher. Read the Twenty fiche for the plan detail; the decision arithmetic lives here.

Match the three to your team

The Marmelab benchmark of January 2026, whose authors disclose they sell one of the products reviewed, keeps Twenty first among nine open source CRMs and calls out its one-line installation and REST and GraphQL API, while listing a contaminating licence as its main drawback.

Your situationWhat to pickThe published figure that decides
Technical team, data residency or a schema to bendTwenty self-hostedAGPLv3 core, free; see the RAM requirement above
Team that refuses per-user fees outrightSuiteCRM self-hosted0 dollars a licence; managed hosting from 50 pounds a month
Small team, no dev, wants a hosted escape hatchEspoCRM cloud Basic12.90 euros a seat, monthly; minimum 3 users
Team that wants zero ops and a modern UITwenty cloud Pro9 dollars a seat, monthly, billed yearly

EspoCRM's cloud Basic, minimum 3 users, is the published way to skip that evening entirely, and their cloud page lists a 30-day free trial of its own.

We install CRMs for a living, and we have set up HubSpot, Pipedrive, folk and Attio. Today we decline to install anything that is not Twenty, which is a commercial position and not a preference, and it is recorded as such on our own Twenty entry. If that reason does not apply to you, SuiteCRM's zero licence or EspoCRM's hosted Basic seat are real alternatives, and the table above prices them.

Try it with a demo, a Docker install and a trial

Twenty's homepage puts cloud sign-up at under a minute with no credit card, and their FAQ offers 4-hour Onboarding Packs or certified partners for larger rollouts, with the vendor putting go-live at 1 to 2 weeks. The test worth running costs one evening: a rented virtual machine, the one-command Docker install from their documentation, and your own data model rebuilt as a custom object.

Read the license limits and the paid features

The license question to settle before you modify anything is AGPLv3. Their LICENSE file on GitHub states that if you modify Twenty, the AGPLv3 applies to your modified version.

On Twenty's pricing page, SSO is marked No on Pro and available on Organization, which is listed at 39 dollars per seat, monthly, when billed yearly; the jump buys custom roles down to fields and rows, not capacity, since the page lists unlimited records and objects on every tier. EspoCRM's Basic cloud plan caps at 100,000 records with 3GB of file storage per user, and their billing terms require 6-month or yearly billing on Basic and Enterprise.

Plan the migration before you export

Twenty's homepage answers "Can I migrate from Salesforce or HubSpot?" with a yes: import via CSV, or via their API for 50,000+ records, with partners able to handle the full migration. CSV import takes 10,000 records per file, and their data-migration guide recommends the API for anything larger, listing API import as unlimited. Exporting back out is capped too: 20,000 records per CSV export, with an "Export CSV" permission required.

We wrote a whole article about the unit that actually matters in these projects: not the licence but the migration work behind it, in one workspace per client. The companion piece on choosing a CRM for an agency covers the numbers to read before you pick any of them.

Check the caps before the second month

Twenty's CSV import caps each file at 10,000 records, so an export ten times that size (10 x 10,000) needs ten files, each with its own field mapping. The export direction stops at 20,000 records per run, which turns a full backup into a batch job. And EspoCRM's Basic tier holds the record ceiling already quoted above, so the plan you start on in month one can be the plan you outgrow in month two; their page says records can be extended for an additional fee on Basic and Enterprise, which is worth pricing before you commit, not after.

Twenty is not an affiliate: we earn nothing if you choose it, and the same goes for EspoCRM and SuiteCRM.

Where these numbers come from

What people still ask

Is Twenty really free?

The core is free under the AGPLv3 licence and their own FAQ says self-hosting the open source core is free. The paid side is their cloud: Pro at 9 dollars per user per month, Organization at 39 dollars billed yearly.

What server do I need to self-host Twenty?

Their Docker Compose documentation asks for at least 2GB of RAM, Docker and Docker Compose up to date, and a pinned release tag such as v2.38.1. Aliases like v2 or latest are rejected by the install script.

Can I migrate from Salesforce or HubSpot?

Twenty's own FAQ says yes, via CSV or their API for 50,000+ records, with partners able to run the full migration and go-live in 1 to 2 weeks. The documented CSV import is capped at 10,000 records for each file, so larger exports get split.

Does EspoCRM charge per user on its cloud?

Yes, with minimums. Basic is 12.90 euros a seat each month for at least 3 users and caps at 100,000 records; Enterprise is 22.00 euros for at least 5 users and 10,000,000 records; Ultimate is 59.00 euros for at least 10 users with unlimited records.

What does SuiteCRM charge per user?

Nothing. Their pricing page states there are no per-user licensing fees; you pay for hosting, setup and support, and their fully managed hosting starts at 50 pounds a month.

Next, in Sales pipeline

The rest of what I measured on this part of the job.

Read everything I wrote about Sales pipeline