Saltar al contenido principal
Una nueva app generada por npx create-twenty-app se ve así:

Archivos clave

La organización de archivos depende de ti. Las carpetas anteriores son convenciones: el SDK detecta entidades mediante análisis AST en llamadas a export default defineEntity(...), sin importar dónde se encuentre el archivo.

Dependencias

Ambos paquetes del SDK de Twenty pertenecen a devDependencies, no a dependencies:
El generador fija twenty-sdk y twenty-client-sdk a su propia versión; mantén ambos sincronizados al actualizar.
  • twenty-sdk incluye el CLI twenty y las herramientas de build/scaffolding. Solo se ejecuta en el desarrollo y durante el build, y nunca lo importa el runtime de la app que publicas.
  • twenty-client-sdk es importado por el código de tu app (CoreApiClient, MetadataApiClient, RestApiClient), pero Twenty lo proporciona en tiempo de ejecución: las funciones lógicas lo obtienen de una capa SDK generada y los componentes de front lo resuelven desde módulos servidos por el servidor. Tu copia instalada solo se utiliza para la comprobación de tipos y el build en tiempo de despliegue, por lo que nunca necesita incluirse en el bundle desplegado.
Mantener cualquiera de los paquetes bajo dependencies lo introduce en el bundle de runtime de la app instalada, donde es peso muerto. twenty dev:build emite una advertencia cuando cualquiera de ellos sigue listado bajo dependencies. Añade las dependencias de runtime propias de tu app (las bibliotecas que tus funciones lógicas realmente importan en tiempo de ejecución) bajo dependencies como de costumbre.