Saltar al contenido principal
Tu app funciona. El último paso es describirlo para el mercado y publicarlo.

Añadir metadatos de mercado

La configuración de la aplicación lleva los enlaces que se muestran en el mercado: autor, categoría, logotipo y soporte . Pon un logotipo en public/ y referencialo con 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/es/developers/extend/apps',
  termsUrl: 'https://www.twenty.com/terms',
  emailSupport: 'contact@twenty.com',
  issueReportUrl: 'https://github.com/twentyhq/twenty/issues',
});
El rol por defecto se declara con defineApplicationRole() en su propio archivo — usted ya no pase defaultRoleUniversalIdentifier aquí.
También añade la palabra clave twenty-app a package.json para que la aplicación sea detectable:
{ "keywords": ["twenty-app"] }

Añadir capturas de pantalla de galería

Un listado de mercado se vende a sí mismo con capturas de pantalla. Soltar unos pocos PNGs en public/gallery/ y referenciarlos con capturas de pantalla — se renderizan como una galería en la página de listado.
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',
  ],
});
Lance con la ganancia: haga la primera captura de pantalla el resultado terminado (un documento generado), luego muestre cómo se activa y se autoriza. Usa capturas nítidas y de alta resolución, son lo primero que un usuario ve.
Dale a README.md el mismo tratamiento: es la página principal de npm y GitHub. Abre con la proposición de valor y una captura de pantalla, muestra las características de la línea de cabecera, y mantén los detalles de construcción debajo del plano.

Comprobar antes de enviar

Ejecuta las mismas puertas que CI hace:
yarn lint          # oxlint
yarn typecheck     # tsgo
yarn test:unit     # unit tests
yarn twenty dev --once --dry-run   # preview the metadata diff
La ejecución seca imprime exactamente lo que cambiaría en el servidor sin aplicarlo — una buena comprobación final de sanidad. Ver Testing y Sincronizando y recuperando.

Publicar

# 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 construye y publica a npm por defecto; --private sube un tarball a un registro privado del servidor Veinte en su lugar. Para superficiar una aplicación publicada en el mercado de una instancia, dispara una sincronización de catálogo:
yarn twenty dev:catalog-sync -r <remote>
Detalles completos y la lista de verificación de lanzamiento: Publishing.

Construiste una aplicación 🎉

En seis capítulos utilizaste la mayor parte de la superficie SDK:
  • Objetos, campos y una relación para modelar los datos
  • Una función lógica expuesta como una herramienta de IA, una acción de flujo de trabajo, y rutas HTTP
  • Vistas, navegación, un comando y un componente frontal para la interfaz de usuario
  • Un agente + habilidad para generación natural
  • Metadatos del mercado y el flujo de publicación
La aplicación terminada está en packages/twenty-apps/examples/document-generator.

A dónde ir siguiente

Referencia de datos

Cada tipo de campo, relación y opción de índice.

Referencia lógica

Activadores de eventos Cron y base de datos, el almacén clave-valor, conexiones OAuth.

Referencia del diseño

Diseños de páginas, widgets de tablero y más superficies de interfaz.

Operaciones

CLI, prueba, control remoto, y CI.