npx create-twenty-app se ve así:
Archivos clave
| Archivo / Carpeta | Propósito |
|---|---|
src/application-config.ts | Obligatorio. El archivo de configuración principal de tu app. |
src/default-role.ts | Rol predeterminado que controla a qué pueden acceder tus funciones lógicas. |
src/constants/universal-identifiers.ts | UUIDs generados automáticamente y metadatos de la app (nombre para mostrar, descripción). |
src/__tests__/ | Pruebas de integración (configuración + prueba de ejemplo). |
public/ | Recursos estáticos (imágenes, fuentes) servidos con tu app. |
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 adevDependencies, no a dependencies:
twenty-sdkincluye el CLItwentyy 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-sdksí 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.
dependencies lo introduce en el bundle de runtime de la app instalada, donde es peso muerto. twenty 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.