TiloBox
Back to directory
Twenty project preview

Twenty

Modern, open-source CRM platform and self-hosted alternative to Salesforce.

LicenseAGPL-3.0
GitHub stars55.4k
Last commit1 weeks ago
Tags6 topics
SalesPipelineSelf HostedGraphqlTypescriptCrm
Overview

Why consider Twenty?

Twenty is an open-source CRM built with TypeScript and GraphQL. It features customizable objects, pipeline management, Kanban boards, and rich developer extensibility.

Guided learning

Learn Twenty by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

3 min read 10 sections
In this guide10 sections

What is Twenty?

Twenty is a modern, open-source Customer Relationship Management (CRM) platform built with TypeScript, React, Node.js, and GraphQL. Designed as a flexible, self-hosted alternative to legacy platforms like Salesforce and HubSpot, Twenty gives businesses complete control over customer records, sales pipelines, and database relations.

The platform provides a visual interface with spreadsheet-like data entry, customizable custom objects, Kanban deal pipelines, automated email thread tracking, and a powerful GraphQL API for custom integrations.

Who Is It For?

  • Sales Teams & Account Executives: Tracking leads, contacts, opportunities, and deal stages across visual Kanban boards with notes and activity history.
  • Fast-Growing Startups: Customizing internal customer data models without paying exorbitant per-seat monthly subscription tiers.
  • Full-Stack Developers: Extending CRM capabilities via GraphQL APIs, webhooks, and custom database object schemas.

Key Features

  • Fully customizable data model with user-defined custom objects, fields, and relational links.
  • Interactive visual views: Dynamic spreadsheets with filtering, sorting, and Kanban stage pipelines.
  • Integrated email synchronization tracking client correspondence and calendar interactions.
  • Modern developer API powered by typed GraphQL and REST endpoints with automated documentation.
  • Enterprise role-based access control (RBAC) with team workspace separation.

Deploying Twenty with Docker Compose

yaml
1version: '3.8'
2
3services:
4 server:
5 image: twentycrm/twenty:latest
6 container_name: twenty_server
7 restart: unless-stopped
8 ports:
9 - "3000:3000"
10 environment:
11 - PORT=3000
12 - PG_DATABASE_URL=postgres://twenty:twenty_secret@db:5432/twenty
13 - SERVER_URL=http://localhost:3000
14 - FRONTEND_URL=http://localhost:3000
15 - REDIS_URL=redis://redis:6379
16 - ACCESS_TOKEN_SECRET=generate_secure_random_access_token_secret_key
17 - LOGIN_TOKEN_SECRET=generate_secure_random_login_token_secret_key
18 - REFRESH_TOKEN_SECRET=generate_secure_random_refresh_token_secret_key
19 - FILE_TOKEN_SECRET=generate_secure_random_file_token_secret_key
20 depends_on:
21 - db
22 - redis
23
24 db:
25 image: postgres:16-alpine
26 container_name: twenty_db
27 restart: unless-stopped
28 volumes:
29 - ./twenty_postgres:/var/lib/postgresql/data
30 environment:
31 - POSTGRES_USER=twenty
32 - POSTGRES_PASSWORD=twenty_secret
33 - POSTGRES_DB=twenty
34
35 redis:
36 image: redis:7-alpine
37 container_name: twenty_redis
38 restart: unless-stopped

Start the containers:

bash
1docker compose up -d

Open http://localhost:3000 in your browser to complete administrator account setup and configure your workspace.

Practical Use Cases

1. B2B Sales Opportunity Pipeline

A sales team creates a multi-stage sales funnel (Discovery, Proposal Sent, Contract Negotiation, Closed Won) and drags customer deal cards across stages as sales calls progress.

2. Custom Business Object Modeling

A real estate agency creates custom CRM entities for "Properties", "Inspections", and "Offers", linking each property to buyers and sellers via relational fields.

3. Automated GraphQL Inbound Lead Ingestion

A developer connects web landing page forms to the Twenty GraphQL API to automatically create Contact and Company records whenever a lead requests a demo.

Troubleshooting and Limitations

  • Secret Token Generation: Twenty requires four distinct 32-character secret keys in its environment variables; ensure all secrets are generated using openssl rand -hex 32.
  • Database Migrations: On initial startup, Twenty executes automatic database schema migrations; wait 30 seconds for the database to seed before accessing the web interface.

Official Resources

Related tools

More options with a similar category or technology profile.

Twenty FAQs

Twenty is listed as a Productivity tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Twenty is listed under the AGPL-3.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Twenty is listed as an alternative to Salesforce. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.