Favicon of Twenty

Twenty

Open-source CRM built on TypeScript, NestJS, and PostgreSQL, with a GraphQL API and workflow automation.

Open Source Alternative to:
Twenty website screenshot
Twenty GitHub repository preview

Twenty is an open-source CRM built for technical teams that want to customize and version their CRM like the rest of their stack. It runs on TypeScript, NestJS, PostgreSQL, and BullMQ, and lets teams define custom objects, fields, and views as code instead of clicking through a proprietary configuration UI. Twenty can run on Twenty's managed cloud or be self-hosted with Docker Compose.

Key features

  • Objects, views, and fields as code: define CRM data models with a defineObject TypeScript API and publish them to a workspace with the Twenty CLI.
  • App scaffolding via CLI: npx create-twenty-app bootstraps a new Twenty app project in minutes.
  • NestJS and BullMQ backend: core services and job queues run on NestJS with BullMQ, backed by PostgreSQL.
  • AI agents and chats: built-in AI agents can be attached to workflows and CRM records.
  • Workflow automation: define logic functions and automations that run against CRM data.
  • Version-controlled customization: apps are published and versioned rather than configured through opaque admin settings.

Ideal use cases

Twenty fits technical teams and software companies that have outgrown a generic CRM but don't want expensive, hard-to-customize enterprise software. Because CRM objects, fields, and views are defined as TypeScript code and published through a CLI, engineering teams can treat CRM customization the same way they treat any other part of their stack: reviewed in pull requests, tested, and deployed through CI rather than configured by hand in a settings UI that drifts out of sync with documentation. This code-first model also suits companies building CRM-adjacent products, such as agencies or platform teams that need to ship the same CRM customizations across multiple client workspaces. Built-in AI agents and chats extend Twenty beyond a system of record into a place where automations and conversational workflows can act directly on deal, contact, and company records. Teams evaluating a migration from an incumbent CRM can start by mapping existing objects and fields into Twenty's defineObject schema, then import historical records before cutting over any sales workflows. Self-hosting through Docker Compose appeals to teams with data residency or compliance requirements that rule out sending customer data to a third-party CRM vendor's cloud.

Self-hosting and deployment

Twenty can be self-hosted with Docker Compose, following the Docker Compose capability guide in the docs, or run from source using the project's local setup guide for contributors. The fastest option for teams that don't want to manage infrastructure is Twenty's own cloud, where a workspace can be created in under a minute with automatic updates and no infrastructure to manage. Custom apps built with twenty-sdk/define are shipped to a workspace with npx twenty app:publish, keeping object and field definitions in source control alongside the rest of the application code.

Frequently asked questions

Share:

Stars
53.6K
Forks
8.2K
Last commit
15 hours ago
Repository age
4 years
Self-hosted
Yes
Activity score
87/100
View Repository
Ad
Favicon

 

  
 

Similar to Twenty

Favicon

 

  
 
Favicon

 

  
 
Favicon