Files
twenty/packages/twenty-docs/developers/extend/capabilities/apps.mdx
T
martmullGitHubcubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
16e3e38b79 Improve getting started doc (#19138)
- improves
`packages/twenty-docs/developers/extend/apps/getting-started.mdx`

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-04-01 20:39:44 +00:00

82 lines
3.5 KiB
Plaintext

---
title: Twenty Apps
description: Build and manage Twenty customizations as code.
---
<Warning>
Apps are currently in alpha. The feature works but is still evolving.
</Warning>
## What are apps?
Apps let you extend Twenty with custom objects, fields, logic functions, front components, AI skills, and more — all managed as code. Instead of configuring everything through the UI, you define your data model and logic in TypeScript and deploy it to one or more workspaces.
**What you can build:**
- **Custom objects and fields** — extend your data model with new entities or add fields to existing objects like Company or Person
- **Logic functions** — server-side functions triggered by database events, cron schedules, or HTTP routes
- **Front components** — React components that render inside Twenty's UI (record pages, command menu, side panels)
- **AI skills and agents** — extend Twenty's AI with custom capabilities
- **Views and navigation** — preconfigured saved views and sidebar links
## Quick start
```bash filename="Terminal"
npx create-twenty-app@latest my-twenty-app
cd my-twenty-app
yarn twenty dev
```
This scaffolds a new app, optionally starts a local Twenty server, and begins watching your files for changes. See the [Getting Started](/developers/extend/apps/getting-started) guide for the full walkthrough.
## Detailed guides
| Guide | Description |
|-------|-------------|
| [Getting Started](/developers/extend/apps/getting-started) | Scaffold an app, set up a local server, project structure, CI |
| [Building Apps](/developers/extend/apps/building) | Entity definitions (`defineObject`, `defineLogicFunction`, `defineFrontComponent`, etc.), API clients, npm packages, public assets, testing |
| [Publishing](/developers/extend/apps/publishing) | Deploy to a server, publish to npm, marketplace |
## Key concepts
### Entity detection
The SDK detects entities by scanning your TypeScript files for `export default define<Entity>({...})` calls. File naming and folder structure are flexible — detection is AST-based, not path-based.
### Available entity types
| Function | Purpose |
|----------|---------|
| `defineApplication()` | Application metadata (required, one per app) |
| `defineObject()` | Custom objects with fields |
| `defineField()` | Fields on existing objects |
| `defineLogicFunction()` | Server-side logic with triggers |
| `defineFrontComponent()` | React components in Twenty's UI |
| `defineRole()` | Permission roles |
| `defineView()` | Saved view configurations |
| `defineNavigationMenuItem()` | Sidebar navigation links |
| `defineSkill()` | AI agent skills |
| `defineAgent()` | AI agents with prompts |
| `definePageLayout()` | Custom record page layouts |
| `definePreInstallLogicFunction()` | Runs before app installation |
| `definePostInstallLogicFunction()` | Runs after app installation |
### Development workflow
1. **`yarn twenty dev`** — watches source files, rebuilds on change, syncs to the server, generates typed API clients
2. **`yarn twenty build`** — produces a distributable build
3. **`yarn twenty deploy`** — deploys to a remote Twenty server
4. **`yarn twenty add`** — scaffolds a new entity interactively
### CLI reference
```bash filename="Terminal"
yarn twenty help # List all commands
yarn twenty server start # Start local dev server
yarn twenty remote add # Connect to a Twenty server
yarn twenty exec -n fn # Execute a logic function
yarn twenty logs -n fn # Stream function logs
```
See the [Getting Started](/developers/extend/apps/getting-started) guide for the full CLI reference.