Zum Hauptinhalt springen
Ihre App funktioniert. Der letzte Schritt ist, es für den Marktplatz zu beschreiben und zu veröffentlichen.

Marktplatz-Metadaten hinzufügen

Die Anwendung config trägt die Identität, die im Marktplatz erscheint: Autor, Kategorie, Logo und Unterstützung von Links. Lege ein Logo in public/ ein und verweise es mit logoUrl.
import { defineApplication } from 'twenty-sdk/define';

export default defineApplication({
  universalIdentifier: APPLICATION_UNIVERSAL_IDENTIFIER,
  displayName: 'Document Generator',
  description:
    'Create reusable document templates and generate personalized documents from your CRM records.',
  logoUrl: 'public/document-generator.svg',
  author: 'Twenty',
  category: 'Productivity',
  websiteUrl: 'https://docs.twenty.com/l/de/developers/extend/apps',
  termsUrl: 'https://www.twenty.com/terms',
  emailSupport: 'contact@twenty.com',
  issueReportUrl: 'https://github.com/twentyhq/twenty/issues',
});
Die Standardrolle wird mit defineApplicationRole() in der eigenen Datei deklariert — Sie geben hier nicht mehr den defaultRoleUniversalIdentifier an.
Füge auch das Schlüsselwort “twenty-app” zu “package.json” hinzu, damit die App entdeckt werden kann:
{ "keywords": ["twenty-app"] }

Galerie Screenshots hinzufügen

Ein Marktplatz-Listing verkauft sich mit Screenshots. Legen Sie ein paar PNGs in public/gallery/ und verweisen Sie sie mit screenshots — sie rendern als Galerie auf der Listenseite.
export default defineApplication({
  // ...identity from above
  screenshots: [
    'public/gallery/01-generated-document.png',
    'public/gallery/02-command-menu.png',
    'public/gallery/03-template-editor.png',
    'public/gallery/04-documents.png',
  ],
});
Lead with the payoff: make the first screenshot the finished result (a generated document), then show how it triggered and authored. Verwende scharfe, hochauflösende Aufnahmen – sie sind das Erste, was ein Benutzer sieht.
Gib README.md die gleiche Behandlung — es ist die Titelseite auf npm und GitHub. Öffnen Sie mit dem Wertvorschlag und einem Screenshot, führen Sie die Überschrift auf, und halten Sie dann die Baudetails unter dem Ordner.

Vor dem Versand prüfen

Führe die gleichen Tore CI aus:
yarn lint          # oxlint
yarn typecheck     # tsgo
yarn test:unit     # unit tests
yarn twenty dev --once --dry-run   # preview the metadata diff
Der Trockenlauf druckt genau das, was sich auf dem Server ändern würde, ohne es anzuwenden — eine gute abschließende Vernunftprüfung. Siehe Testing und Synchronisieren & Wiederherstellen.

Veröffentlichen

# Public app → npm (default)
yarn twenty app:publish

# Or deploy privately to a specific server's registry
yarn twenty app:publish --private -r <remote>
app:publish baut und veröffentlicht standardmäßig in npm ; --private lädt stattdessen einen Tarball in die private Registry eines Zwanzig Servers hoch. Um eine veröffentlichte App auf dem Marktplatz einer Instanz aufzudecken, löst eine Katalog-Synchronisation aus:
yarn twenty dev:catalog-sync -r <remote>
Vollständige Details und die Freigabe-Checkliste: Publishing.

Du hast eine App :party_popper erstellt:

In sechs Kapiteln hast du den Großteil der SDK-Oberfläche verwendet:
  • Objekte, Felder und eine Relation um die Daten zu modellieren
  • Eine Logikfunktion als AI-Tool, eine Workflow-Aktion und HTTP-Routen
  • Ansichten, Navigation, Befehl und Frontkomponent für die Benutzeroberfläche
  • Ein Agent + Fertigkeit für die Erzeugung natürlicher Sprache
  • Marketplace-Metadaten und der Veröffentlichungsfluss
Die fertige App ist bei packages/twenty-apps/examples/document-generator.

Wohin Sie weiter gehen

Datenreferenz

Jeder Feldtyp, Relation und Index-Option.

Logische Referenz

Cron- und Datenbankereignis-Trigger, der Schlüsselwert-Store, OAuth Verbindungen.

Layout-Referenz

Seitenlayouts, Dashboard-Widgets und mehr UI-Oberflächen.

Operationen

CLI, Tests, Fernbedienungen und CI.