Improve apps (#19256)
- simplify the base application template - remove --exhaustive option and replace by a --example option like in next.js https://nextjs.org/docs/app/api-reference/cli - Fix some bugs and logs - add a post-card app in twenty-apps/examples/
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user