Skip to main content
Your app works. The last step is to describe it for the marketplace and publish.

Add marketplace metadata

The application config carries the identity that shows up in the marketplace: author, category, logo, and support links. Put a logo in public/ and reference it with logo.
The default role is declared with defineApplicationRole() in its own file — you don’t pass defaultRoleUniversalIdentifier here anymore.
Also add the twenty-app keyword to package.json so the app is discoverable:
A marketplace listing sells itself with screenshots. Drop a few PNGs in public/gallery/ and reference them with galleryImages — they render as a gallery on the listing page, in array order.
Lead with the payoff: make the first screenshot the finished result (a generated document), then show how it’s triggered and authored. Use crisp, high-resolution captures — they’re the first thing a user sees.
Give README.md the same treatment — it’s the front page on npm and GitHub. Open with the value proposition and a screenshot, list the headline features, then keep the build details below the fold.

Check before you ship

Run the same gates CI does:
The plan prints exactly what would change on the server without applying it — a good final sanity check. See Testing and Syncing & recovery.

Publish

app:publish builds and publishes to npm by default; --private uploads a tarball to a Twenty server’s private registry instead. To surface a published app in an instance’s marketplace, trigger a catalog sync:
Full details and the release checklist: Publishing.

You built an app 🎉

In six chapters you used most of the SDK surface:
  • Objects, fields, and a relation to model the data
  • A logic function exposed as an AI tool, a workflow action, and HTTP routes
  • Views, navigation, a command, and a front component for the UI
  • An agent + skill for natural-language generation
  • Marketplace metadata and the publish flow
The finished app is at packages/twenty-apps/examples/document-generator.

Where to go next

Data reference

Every field type, relation, and index option.

Logic reference

Cron and database-event triggers, the key-value store, OAuth connections.

Layout reference

Page layouts, dashboard widgets, and more UI surfaces.

Operations

CLI, testing, remotes, and CI.