> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Estructura del proyecto

> Entender la estructura del proyecto de Base44 para desarrollo local

El comando [`create`](/developers/references/cli/commands/create) del CLI de Base44 crea nuevos proyectos con todos los archivos y la configuración necesarios. Este artículo describe la estructura del proyecto de backend de Base44 y explica para qué sirve cada archivo y directorio.

## Estructura del proyecto de backend

Cuando creas un proyecto de Base44 solo backend, el CLI genera esta estructura mínima:

<Tree>
  <Tree.Folder name="<your-project-name>" defaultOpen>
    <Tree.Folder name="base44" defaultOpen>
      <Tree.File name=".app.jsonc" />

      <Tree.File name="config.jsonc" />
    </Tree.Folder>

    <Tree.File name=".gitignore" />
  </Tree.Folder>
</Tree>

A medida que desarrollas tu proyecto, añades archivos para tus recursos, como [entidades](/developers/backend/resources/entities/overview), [funciones](/developers/backend/resources/backend-functions/overview), [agentes](/developers/backend/resources/agents-config), [conectores](/developers/backend/resources/connectors) y [configuración de auth](/developers/backend/resources/auth):

<Tree>
  <Tree.Folder name="<your-project-name>" defaultOpen>
    <Tree.Folder name="base44" defaultOpen>
      <Tree.File name=".app.jsonc" />

      <Tree.File name="config.jsonc" />

      <Tree.Folder name=".types" defaultOpen>
        <Tree.File name="types.d.ts" />
      </Tree.Folder>

      <Tree.Folder name="agents" defaultOpen>
        <Tree.File name="<agent-name>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="auth" defaultOpen>
        <Tree.File name="config.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="connectors" defaultOpen>
        <Tree.File name="<connector-type>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="entities" defaultOpen>
        <Tree.File name="<entity-name>.jsonc" />
      </Tree.Folder>

      <Tree.Folder name="functions" defaultOpen>
        <Tree.Folder name="<function-name>" defaultOpen>
          <Tree.File name="entry.ts" />

          <Tree.File name="function.jsonc" />
        </Tree.Folder>
      </Tree.Folder>
    </Tree.Folder>

    <Tree.File name=".gitignore" />
  </Tree.Folder>
</Tree>

<Note>
  Las funciones solo requieren un archivo `entry.ts` o `entry.js`. Opcionalmente, puedes añadir `function.jsonc` para configuraciones avanzadas, como nombres personalizados o automatizaciones. Consulta [Funciones de backend](/developers/backend/resources/backend-functions/overview) para más detalles.
</Note>

### base44/

Contiene toda la configuración del backend de Base44 y las definiciones de recursos.

#### config.jsonc

Define la configuración de tu proyecto, incluidas las rutas a [entidades](/developers/backend/resources/entities/overview), [funciones](/developers/backend/resources/functions), [agentes](/developers/backend/resources/agents-config), [conectores](/developers/backend/resources/connectors), [configuración de auth](/developers/backend/resources/auth) y los ajustes de hosting de sitio para proyectos full-stack. El CLI crea esto solo con el nombre de tu proyecto, y puedes añadir más configuración según sea necesario.

Tu proyecto requiere un archivo `config.jsonc` (o `config.json`) en el directorio `base44/`:

```jsonc theme={null}
// Base44 Project Configuration
{
  "name": "my-project",
  "description": "My Base44 app",

  // Directory paths (relative to config file)
  "entitiesDir": "./entities",
  "functionsDir": "./functions",
  "agentsDir": "./agents",
  "connectorsDir": "./connectors",
  "authDir": "./auth",

  // Site/hosting configuration (for full-stack projects)
  "site": {
    "outputDirectory": "./dist", // Required - where your built files are located
  },
}
```

| Propiedad              | Descripción                                                                                      | Predeterminado |
| ---------------------- | ------------------------------------------------------------------------------------------------ | -------------- |
| `name`                 | Nombre del proyecto (obligatorio)                                                                | —              |
| `description`          | Descripción del proyecto                                                                         | —              |
| `entitiesDir`          | Ruta al directorio de [entidades](/developers/backend/resources/entities/overview)               | `./entities`   |
| `functionsDir`         | Ruta al directorio de [funciones](/developers/backend/resources/backend-functions/overview)      | `./functions`  |
| `agentsDir`            | Ruta al directorio de [agentes](/developers/backend/resources/agents-config)                     | `./agents`     |
| `connectorsDir`        | Ruta al directorio de [conectores](/developers/backend/resources/connectors)                     | `./connectors` |
| `authDir`              | Ruta al directorio de [configuración de auth](/developers/backend/resources/auth)                | `./auth`       |
| `site.outputDirectory` | Dónde se encuentran los archivos compilados de tu sitio (requerido para el despliegue del sitio) | —              |
| `site.buildCommand`    | Solo se usa durante `base44 create` para despliegue automatizado                                 | —              |
| `site.installCommand`  | Solo se usa durante `base44 create` para despliegue automatizado                                 | —              |
| `site.serveCommand`    | Solo de referencia. Actualmente no lo usa el CLI                                                 | —              |

<Note>
  Las propiedades `buildCommand`, `installCommand` y `serveCommand` se
  incluyen automáticamente cuando creas un proyecto a partir de la plantilla full-stack.
  Solo se usan durante el flujo inicial de `base44 create` para el despliegue
  automatizado. No necesitas especificar ni modificar estas propiedades después de la creación
  del proyecto. Al desplegar tu sitio más adelante con `site deploy`, solo se usa
  `outputDirectory`.
</Note>

#### .app.jsonc

Vincula tu proyecto local con tu app de Base44. Este archivo se crea automáticamente con el CLI cuando creas o vinculas un proyecto.

```jsonc theme={null}
// Base44 App Configuration
// This file links your local project to your Base44 app.
// Do not commit this file to version control.
{
  "id": "your-app-id",
}
```

<Note>
  El archivo `.app.jsonc` no debe enviarse al control de versiones. El CLI
  crea automáticamente un archivo `.gitignore` que excluye este archivo.
</Note>

#### .types/types.d.ts

Definiciones de tipos de TypeScript generadas para tus entidades, funciones, agentes y conectores. Se crea ejecutando [`base44 types generate`](/developers/references/cli/commands/types-generate). Este archivo proporciona autocompletado y seguridad de tipos al usar el SDK en proyectos TypeScript. Consulta [Tipos dinámicos](/developers/references/sdk/getting-started/dynamic-types) para más detalles.

#### agents/

Directorio que contiene [configuraciones de agentes de IA](/developers/backend/resources/agents-config). Cada agente se define en un archivo `.json` o `.jsonc` separado.

#### auth/

Directorio que contiene la [configuración de autenticación](/developers/backend/resources/auth) de tu app. Contiene un único archivo `config.jsonc` que define qué métodos de inicio de sesión están disponibles para tus usuarios finales. Descarga la configuración actual desde Base44 con [`auth pull`](/developers/references/cli/commands/auth-pull).

#### connectors/

Directorio que contiene [configuraciones de conectores OAuth](/developers/backend/resources/connectors). Cada conector se define en un archivo `.json` o `.jsonc` separado, con el nombre del tipo de integración, como `slack.jsonc` o `googlecalendar.jsonc`.

#### entities/

Directorio que contiene [definiciones de esquema de entidades](/developers/backend/resources/entities/overview). Cada entidad se define en un archivo `.json` o `.jsonc` separado. Crea este directorio cuando estés listo para definir tu primera entidad.

#### functions/

Directorio que contiene [funciones de backend](/developers/backend/resources/backend-functions/overview) serverless. Cada función requiere su propio subdirectorio con un archivo de código `entry.ts` o `entry.js`. El CLI usa la ruta del directorio relativa a la raíz de funciones como nombre de la función. Por ejemplo, `functions/sendEmail/entry.ts` crea una función llamada `sendEmail`. Opcionalmente, puedes añadir un archivo de configuración `function.jsonc` para personalizar el nombre de la función o añadir automatizaciones.

<Tree>
  <Tree.Folder name="functions" defaultOpen>
    <Tree.Folder name="<function-name>" defaultOpen>
      <Tree.File name="entry.ts" />

      <Tree.File name="function.jsonc" />
    </Tree.Folder>
  </Tree.Folder>
</Tree>

### .gitignore

Evita que los archivos se envíen al control de versiones. Tu proyecto empieza con este archivo para evitar que `.app.jsonc` se envíe.

### Carpetas de skills de agentes de IA

Cuando creas un proyecto con `base44 create`, las [skills de agentes de IA](/developers/backend/overview/base44-skills) se instalan automáticamente. Aparecen en carpetas específicas del agente, como `.claude/skills/`, `.cursor/skills/` o similares, según el asistente de IA para programación que uses. Estas carpetas ayudan a tu agente de programación a entender cómo trabajar con Base44 y se pueden enviar al control de versiones sin problemas.

## Ver también

* [Quickstart - Solo backend](/developers/backend/quickstart/templates/quickstart-backend-only): Crea tu primer proyecto solo backend
* [Quickstart - React](/developers/backend/quickstart/templates/quickstart-react-template): Crea una app full-stack React con Base44
* [Comando `types generate`](/developers/references/cli/commands/types-generate): Genera tipos de TypeScript a partir de tu proyecto
* [Tipos dinámicos](/developers/references/sdk/getting-started/dynamic-types): Obtén seguridad de tipos para el código de tu SDK
* [Entidades](/developers/backend/resources/entities/overview): Aprende sobre la configuración de esquemas de base de datos
* [Funciones de backend](/developers/backend/resources/backend-functions/overview): Crea endpoints de API serverless
* [Agentes de IA](/developers/backend/resources/agents-config): Configura agentes de IA para tu app
* [Conectores](/developers/backend/resources/connectors): Configura conexiones OAuth a servicios de terceros
* [Configuración de auth](/developers/backend/resources/auth): Gestiona los métodos de inicio de sesión de tu app

<Note>Esta página se tradujo con IA. Para información más precisa y actualizada, consulta la [versión en inglés](/). </Note>
