finds.dev← search

// the find

twentyhq/twenty

★ 45,907 · TypeScript · NOASSERTION · updated May 2026

The open alternative to Salesforce, designed for AI.

Twenty is a self-hostable, open-source CRM built on NestJS, React, PostgreSQL, and GraphQL. It's aimed at technical teams who want a Salesforce-like system they can extend and version like regular code, rather than clicking through an admin UI. The newer SDK angle lets you define objects and deploy them like a mini-PaaS on top of the CRM.

- The monorepo is well-structured with Nx, clear package boundaries (twenty-server, twenty-front, twenty-sdk, twenty-ui, etc.), and the CI pipeline has granular per-package workflows plus merge queue enforcement — the engineering process is more mature than most OSS projects at this stage.

- The code-first app model (defineObject + npx twenty deploy) is a genuine differentiator over Salesforce and most open-source CRMs; treating CRM schema as versionable code that ships through a normal git workflow is a real improvement over click-to-configure.

- Cursor rules and skill files (.cursor/rules/, .cursor/skills/) are checked into the repo, which means AI-assisted contributions get consistent architectural guidance — an unusually thoughtful detail that actually reduces bad PRs.

- GraphQL API is first-class and auto-generated from your object definitions, so anything you model is immediately queryable and available to external tools without extra wiring.

- AGPL-3.0 license is a hard stop for many commercial adopters who want to embed or modify without open-sourcing their own product; this is often glossed over in the 'open alternative to Salesforce' pitch.

- Self-hosting is non-trivial: you need PostgreSQL, Redis, a running NestJS server, and a worker process. The Docker Compose path works but config surface area (env vars, migrations, worker concurrency, email transport) is large and documentation gaps surface quickly in edge cases.

- The 'designed for AI' framing in the description is vague and mostly refers to agent/chat features that are still early; the actual AI integration depends on you wiring in your own LLM keys, and the agent capabilities shown are not clearly differentiated from basic workflow automation.

- Node >=24.5.0 is required (pinned in engines), which is unusually aggressive — Node 24 only hit LTS status recently, and this will cause friction in environments with pinned Node versions or older CI images.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →