## Summary - **Make app-synced objects searchable**: `isSearchable` was hardcoded to `false` and the `searchVector` field was missing the `GENERATED ALWAYS AS (...)` expression, causing all records to have a `NULL` search vector and be excluded from search results. Fixed by defaulting `isSearchable` to `true` (configurable via the object manifest), computing the `asExpression` from the label identifier field, and allowing the update-field-action-handler to handle the `null` → defined `asExpression` transition. - **Make `isSearchable` updatable on an object**: The property had `toCompare: false` in the entity properties configuration, so updates via the API were silently ignored and never persisted. Fixed by setting `toCompare: true`.
The official scaffolding CLI for building apps on top of Twenty CRM. Sets up a ready-to-run project with twenty-sdk.
Quick start
npx create-twenty-app@latest my-twenty-app
cd my-twenty-app
yarn twenty dev
The scaffolder will:
- Create a new project with TypeScript, linting, and a preconfigured
twentyCLI - Optionally start a local Twenty server (Docker)
- Open the browser for OAuth authentication
- Scaffold example entities and an integration test
Scaffolding modes
| Flag | Behavior |
|---|---|
--minimal |
(default) Creates only core files (application-config.ts, default-role.ts, pre/post-install functions) |
--exhaustive |
Creates all example entities |
Other flags:
--name <name>— set the app name (skips the prompt)--display-name <displayName>— set the display name (skips the prompt)--description <description>— set the description (skips the prompt)--skip-local-instance— skip the local server setup prompt
Documentation
Full documentation is available at docs.twenty.com/developers/extend/apps:
- Getting Started — step-by-step setup, project structure, server management, CI
- Building Apps — entity definitions, API clients, testing
- Publishing — deploy, npm publish, marketplace
Troubleshooting
- Server not starting: check Docker is running (
docker info), then tryyarn twenty server logs. - Auth not working: make sure you are logged in to Twenty in the browser, then run
yarn twenty remote add. - Types not generated: ensure
yarn twenty devis running — it auto-generates the typed client.