dev-tools 4 min read

Twenty: an open-source CRM alternative to Salesforce

Twenty is an open-source CRM built in TypeScript, pitched as the open alternative to Salesforce. Here is the project shape and the license position.

By
Share: X in
GitHub social preview card for twentyhq/twenty

TL;DR: Twenty is an open-source CRM that positions itself as the open alternative to Salesforce, built in TypeScript. The repository has 59,208 stars, 9,664 forks and a GraphQL core, and at 2.2 GB it is by far the largest codebase in this batch.

What it is

Twenty is a CRM, and the description is two sentences: the open alternative to Salesforce, designed for AI. The second half is the differentiator. The interface is built for a model to read and write, not only for a human to click through.

The repository is TypeScript, owned by the Twenty organization, and it was created on 2022-12-01. It has 59,208 stars, 9,664 forks and 131 open issues, with the product site at twenty.com. The last push landed today.

The stack tells the story

TypeScript for the application layer, and graphql as a topic. For an open CRM, the GraphQL layer is the part that matters to anyone building on top: it means the data model is exposed as a queryable schema that scripts and agents can work against, instead of being locked behind a REST surface that only the official client speaks.

The other topics, crm, crm-system and customer, state the domain plainly. So do good-first-issue and hacktoberfest, which are a different kind of signal: the project is actively recruiting outside contributors, which usually means the issue tracker is a live surface rather than a graveyard.

Check the license before you plan

The GitHub API reports NOASSERTION for the license, which means the repository does not use a standard OSI identifier. That is not automatically a red flag, but it is the one field you should resolve before you make any decision that depends on it, especially for a self-hosted alternative where the whole point is that you keep control of the data.

Compare that with the rest of this batch. vLLM and Graphify are both Apache-2.0, Kronos and freehire are MIT, and those are one API call away from certainty. Twenty needs a human to read the file.

MetricValue
LanguageTypeScript
LicenseNOASSERTION (custom, see repository)
Stars59,208
Forks9,664
Open issues131
Created2022-12-01
Last push2026-10-22
Default branchmain

How to try it

git clone https://github.com/twentyhq/twenty.git
cd twenty
git branch --show-current

And the shape of the GraphQL surface a CRM like this exposes, where exact field names vary by version:

query {
  contacts {
    edges {
      node {
        id
        name
      }
    }
  }
}

When to use it

Twenty fits when you want a CRM your company owns and hosts, and when you want the same records your salespeople work in to be reachable by agents and scripts. The GraphQL core is what makes that second half plausible rather than aspirational.

When to skip it

Skip it if you need the mature ecosystem of a commercial CRM, things like billing, territory management or a large integration marketplace, because a community project will not have that weight behind it. Also skip it if nobody on your team is going to operate it. A self-hosted CRM is a system you maintain, and the 2.2 GB repository size is a fair signal of how much surface that means.

Source and Accuracy Notes

  • Project page: https://github.com/twentyhq/twenty
  • Source repository: twentyhq/twenty (verified via GitHub API html_url)
  • License: NOASSERTION (custom license, see repo)
  • Stars at time of writing: 59208