Skip to main content
Clara apps are TypeScript packages that extend your workspace with custom objects, logic, UI components, and AI capabilities. They run on the Clara platform with full sandboxing and permission controls.

How apps work

An app is a collection of entities declared using defineEntity() functions from the twenty-sdk package. The SDK detects these declarations via AST analysis at build time and produces a manifest — a complete description of what your app adds to a workspace.
File organization is up to you. Entity detection is AST-based — the SDK finds export default defineEntity(...) calls regardless of where the file lives. The folder structure above is a convention, not a requirement.

Entity types

Sandboxing

  • Logic functions run in isolated Node.js processes on the server. They only access data through the typed API client, scoped to the app’s role permissions.
  • Front components run in Web Workers using Remote DOM — sandboxed from the main page but rendering native DOM elements (not iframes). They communicate with Clara via a message-passing host API.
  • Permissions are enforced at the API level. The runtime token (TWENTY_APP_ACCESS_TOKEN) is derived from the role defined in defineApplication().

App lifecycle

  • yarn twenty dev — watches your source files and live-syncs changes to a connected Clara server. The typed API client is regenerated automatically when the schema changes.
  • yarn twenty build — compiles TypeScript, bundles logic functions and front components with esbuild, and produces a manifest.
  • Pre/post-install hooks — optional logic functions that run during installation. See Logic Functions for details.

Next steps

Data Model

Define objects, fields, roles, and relations.

Logic Functions

Server-side functions with HTTP, cron, and event triggers.

Front Components

Sandboxed React components inside Clara’s UI.

Layout

Views, navigation items, and record page layouts.

Skills & Agents

AI skills and agents with custom prompts.

CLI & Testing

CLI commands, testing, assets, remotes, and CI.

Publishing

Deploy to a server or publish to the marketplace.