Saltar para o conteúdo principal
Seu aplicativo funciona. O último passo é descrevê-lo para o mercado e publicar.

Adicionar metadados de mercado

A aplicação config transporta a identidade que aparece no mercado: autor, categoria, logotipo e suporte links . Coloque um logotipo em public/ e referencie-o com 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/pt/developers/extend/apps',
  termsUrl: 'https://www.twenty.com/terms',
  emailSupport: 'contact@twenty.com',
  issueReportUrl: 'https://github.com/twentyhq/twenty/issues',
});
O papel padrão é declarado com defineApplicationRole() em seu próprio arquivo — você não passa mais defaultRoleUniversalIdentifier aqui.
Também adicione a palavra-chave vinte app ao package.json para que o aplicativo seja detectável:
{ "keywords": ["twenty-app"] }

Adicionar capturas de tela da galeria

Uma lista de mercado vende a si mesma com screenshots. Colocar alguns PNGs em public/gallery/ e referenciá-los com screenshots — eles renderizam como galeria na página de listagem.
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',
  ],
});
Conduzir com o pagamento: fazer a primeira captura de tela o resultado finalizado (um documento gerado), depois mostrar como é acionado e autorado. Use capturas crocantes e de alta resolução — elas são a primeira coisa que um usuário vê.
Dê ao README.md o mesmo tratamento — é a página inicial em npm e GitHub. Abra com a proposição de valor e uma captura de tela, liste os recursos do título, e então mantenha os detalhes de compilação abaixo da dobra.

Verifique antes de enviar

Executar os mesmos portões CI do portão:
yarn lint          # oxlint
yarn typecheck     # tsgo
yarn test:unit     # unit tests
yarn twenty dev --once --dry-run   # preview the metadata diff
A corrida seca imprime exatamente o que mudaria no servidor sem aplicá-lo — uma boa verificação de sanidade final. Veja Testing e Sincronização e recuperação.

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 compila e publica para o npm por padrão; --private envia uma tarball para um registro privado de vinte servidores. Para superfíciar um aplicativo publicado no mercado de uma instância, acione uma sincronização de catálogo:
yarn twenty dev:catalog-sync -r <remote>
Detalhes completos e o checklist de lançamento: Publishing.

Você construiu um aplicativo 🎉

Em seis capítulos você usou a maior parte da superfície SDK:
  • Objetos, campos e uma relação para modelar os dados
  • Uma função lógica exposta como uma ferramenta de Inteligência, uma ação de fluxo de trabalho e rotas HTTP
  • Exibir, navegação, um comando e um componente frontal para a interface do usuário
  • Um agente + habilidade para a geração de idioma natural
  • Metadados do Marketplace e o fluxo de publicação
O aplicativo completo está em packages/twenty-apps/examples/document-generator.

Para onde ir

Referência de dados

Todos os tipos de campo, relação e opção de índice.

Referência lógica

Gatilhos Cron e database-event trigers, a loja chave-valor, conexões OAuth

Referência do layout

Layouts da página, widgets do painel e mais superfícies da UI.

Operações

CLI, testes, controles remotos e CI.