Saltar para o conteúdo principal
Um novo app gerado por npx create-twenty-app se parece com isto:
my-twenty-app/
  package.json
  src/
    application-config.ts                   # Required — your app's entry point
    default-role.ts                         # Permissions for logic functions
    constants/
      universal-identifiers.ts              # Auto-generated UUIDs and metadata
    __tests__/
      setup-test.ts
      app-install.integration-test.ts
  .github/workflows/ci.yml                  # GitHub Actions
  public/                                   # Static assets
  vitest.config.ts                          # Test runner config
  tsconfig.json, tsconfig.spec.json
  .nvmrc, .yarnrc.yml, .oxlintrc.json
  README.md, LLMS.md

Arquivos principais

Arquivo / PastaFinalidade
src/application-config.tsObrigatório. O principal arquivo de configuração do seu aplicativo.
src/default-role.tsPapel padrão que controla o que suas funções de lógica podem acessar.
src/constants/universal-identifiers.tsUUIDs gerados automaticamente e metadados (nome de exibição, descrição).
src/__tests__/Testes de integração (configuração + teste de exemplo).
public/Recursos estáticos (imagens, fontes) servidos com seu aplicativo.
A organização de arquivos fica a seu critério. As pastas acima são convenções — o SDK detecta entidades por meio de análise de AST em chamadas a export default defineEntity(...), independentemente de onde o arquivo esteja.

Dependências

Ambos os pacotes Twenty SDK pertencem a devDependencies, não a dependencies:
{
  "dependencies": {},
  "devDependencies": {
    "twenty-client-sdk": "^2.13.0",
    "twenty-sdk": "^2.13.0"
  }
}
  • twenty-sdk inclui a CLI twenty e as ferramentas de build/scaffolding. Ele é executado apenas durante o desenvolvimento e o build e nunca é importado pelo runtime do aplicativo publicado.
  • twenty-client-sdk é importado pelo código do seu aplicativo (CoreApiClient, MetadataApiClient, RestApiClient), mas a Twenty o fornece em tempo de execução — as funções de lógica o obtêm de uma camada SDK gerada, e os componentes de front o resolvem a partir de módulos servidos pelo servidor. A cópia instalada é usada apenas para verificação de tipos e para o build no momento do deploy, então ela nunca precisa ser incluída no bundle implantado.
Manter qualquer um dos pacotes em dependencies o inclui no bundle de runtime do aplicativo instalado, onde ele é peso morto. twenty build emite um aviso quando qualquer um deles ainda está listado em dependencies. Adicione as dependências de runtime do próprio aplicativo (bibliotecas que as suas funções de lógica realmente importam em tempo de execução) em dependencies, como de costume.