Website ·
Documentation ·
Roadmap ·
Discord ·
Figma
Twenty gives technical teams the building blocks for a custom CRM that meets complex business needs and quickly adapts as the business evolves. Twenty is the CRM you build, ship, and version like the rest of your stack.
Learn more about why we built Twenty
The fastest way to get started. Sign up at twenty.com and spin up a workspace in under a minute, with no infrastructure to manage and always up to date.
Scaffold a new app with the Twenty CLI:
npx create-twenty-app my-appDefine objects, fields, and views as code:
import { defineObject, FieldType } from 'twenty-sdk/define';
export default defineObject({
nameSingular: 'deal',
namePlural: 'deals',
labelSingular: 'Deal',
labelPlural: 'Deals',
fields: [
{ name: 'name', label: 'Name', type: FieldType.TEXT },
{ name: 'amount', label: 'Amount', type: FieldType.CURRENCY },
{ name: 'closeDate', label: 'Close Date', type: FieldType.DATE_TIME },
],
});Then ship it to your workspace:
npx twenty deploySee the app development guide for objects, views, agents, and logic functions.
Run Twenty on your own infrastructure with Docker Compose, or contribute locally via the local setup guide.
Twenty gives you the building blocks of a modern CRM (objects, views, workflows, and agents) and lets you extend them as code. Here's a tour of what's in the box.
Want to go deeper? Read the User Guide for product walkthroughs, or the
Documentation for developer reference.
|
|
|
|
|
|
TypeScript
Nx
NestJS, with BullMQ,
PostgreSQL,
Redis
React, with Jotai, Linaria and Lingui
GitHub Actions is permanently unavailable for the eMobility-Innovations organization by operator
decision. This fork has no workflow-based CI. Run ./install-hooks.sh once per clone (or let the
organization policy package arm it); every push then runs ./verify.sh through the tracked
pre-push hook.
This repository tracks twentyhq/twenty and is deployed rather than developed by this
organization. At the time the gate was introduced, git diff upstream/main...HEAD contained no
org-specific application changes. The gate therefore does not reproduce Twenty's 35-workflow
monorepo CI, and it never was a replacement for upstream CI. It checks that GitHub workflows stay
absent and fails if an org-specific application path appears, requiring a targeted gate for that
path before it can be pushed.
The removed automation for linting, type checking, unit/integration/E2E tests, builds, API
compatibility, Docker Compose, releases, translation synchronization, catalog synchronization,
PR comments, bots, and preview/visual environments belongs to upstream's development process and
is deliberately not run by this deployment fork. In particular, the two removed deploy workflows
only dispatched to twentyhq/twenty-infra with a Twenty-owned token; they were not this
organization's deployment path, so there is no local deploy.sh replacement. The live deployment
path for eMobility-Innovations is not recorded in those workflows and remains to be confirmed by
the operator.
Use ./sync-upstream.sh to merge upstream/main while preserving the permanent workflow removal.
See docs/UPSTREAM-DIVERGENCE.md for the full path inventory.
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
Star the repo ·
Discord ·
Feature requests ·
Releases ·
X ·
LinkedIn ·
Crowdin ·
Contribute