> ## 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.

# Estrutura do Projeto

> Entendendo a estrutura de projeto da Base44 para desenvolvimento local

O comando [`create`](/developers/references/cli/commands/create) da CLI da Base44 cria novos projetos com todos os arquivos e configurações necessários. Este artigo descreve a estrutura do projeto de backend da Base44 e explica o que cada arquivo e diretório faz.

## Estrutura do projeto de backend

Quando você cria um projeto Base44 somente backend, a CLI gera esta estrutura 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>

À medida que você desenvolve seu projeto, adiciona arquivos para seus recursos, como [entidades](/developers/backend/resources/entities/overview), [funções](/developers/backend/resources/backend-functions/overview), [agentes](/developers/backend/resources/agents-config), [conectores](/developers/backend/resources/connectors) e [auth config](/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>
  As funções exigem apenas um arquivo `entry.ts` ou `entry.js`. Você pode opcionalmente adicionar `function.jsonc` para configurações avançadas como nomes customizados ou automations. Veja [Backend Functions](/developers/backend/resources/backend-functions/overview) para detalhes.
</Note>

### base44/

Contém toda a configuração de backend Base44 e definições de recursos.

#### config.jsonc

Define a configuração do seu projeto, incluindo caminhos para [entidades](/developers/backend/resources/entities/overview), [funções](/developers/backend/resources/functions), [agentes](/developers/backend/resources/agents-config), [conectores](/developers/backend/resources/connectors), [auth config](/developers/backend/resources/auth) e configurações de hospedagem para projetos full-stack. A CLI cria isto com apenas o nome do seu projeto, e você pode adicionar mais configurações conforme necessário.

Seu projeto requer um arquivo `config.jsonc` (ou `config.json`) no diretório `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
  },
}
```

| Propriedade            | Descrição                                                                                       | Padrão         |
| ---------------------- | ----------------------------------------------------------------------------------------------- | -------------- |
| `name`                 | Nome do projeto (obrigatório)                                                                   | —              |
| `description`          | Descrição do projeto                                                                            | —              |
| `entitiesDir`          | Caminho para o diretório de [entidades](/developers/backend/resources/entities/overview)        | `./entities`   |
| `functionsDir`         | Caminho para o diretório de [funções](/developers/backend/resources/backend-functions/overview) | `./functions`  |
| `agentsDir`            | Caminho para o diretório de [agentes](/developers/backend/resources/agents-config)              | `./agents`     |
| `connectorsDir`        | Caminho para o diretório de [conectores](/developers/backend/resources/connectors)              | `./connectors` |
| `authDir`              | Caminho para o diretório de [auth config](/developers/backend/resources/auth)                   | `./auth`       |
| `site.outputDirectory` | Onde os arquivos compilados do seu site estão localizados (obrigatório para deploy do site)     | —              |
| `site.buildCommand`    | Usado apenas durante `base44 create` para deploy automatizado                                   | —              |
| `site.installCommand`  | Usado apenas durante `base44 create` para deploy automatizado                                   | —              |
| `site.serveCommand`    | Apenas referência. Não usado atualmente pela CLI                                                | —              |

<Note>
  As propriedades `buildCommand`, `installCommand` e `serveCommand` são
  incluídas automaticamente quando você cria um projeto a partir do template full-stack.
  Elas são usadas apenas durante o fluxo inicial de `base44 create` para deploy
  automatizado. Você não precisa especificar ou modificar essas propriedades após a criação
  do projeto. Ao implantar seu site depois com `site deploy`, apenas
  `outputDirectory` é usado.
</Note>

#### .app.jsonc

Vincula seu projeto local ao seu app Base44. Este arquivo é criado automaticamente pela CLI quando você cria ou vincula um projeto.

```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>
  O arquivo `.app.jsonc` não deve ser commitado no controle de versão. A CLI
  cria automaticamente um arquivo `.gitignore` que exclui este arquivo.
</Note>

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

Definições de tipo TypeScript geradas para suas entidades, funções, agentes e conectores. Criado executando [`base44 types generate`](/developers/references/cli/commands/types-generate). Este arquivo fornece autocomplete e segurança de tipo ao usar o SDK em projetos TypeScript. Veja [Dynamic Types](/developers/references/sdk/getting-started/dynamic-types) para mais detalhes.

#### agents/

Diretório que contém [configurações de agentes de IA](/developers/backend/resources/agents-config). Cada agente é definido em um arquivo `.json` ou `.jsonc` separado.

#### auth/

Diretório que contém a [configuração de autenticação](/developers/backend/resources/auth) do seu app. Contém um único arquivo `config.jsonc` que define quais métodos de login estão disponíveis para seus usuários finais. Faça pull da configuração atual da Base44 com [`auth pull`](/developers/references/cli/commands/auth-pull).

#### connectors/

Diretório que contém [configurações de conectores OAuth](/developers/backend/resources/connectors). Cada conector é definido em um arquivo `.json` ou `.jsonc` separado nomeado de acordo com o tipo de integração, como `slack.jsonc` ou `googlecalendar.jsonc`.

#### entities/

Diretório que contém [definições de schemas de entidade](/developers/backend/resources/entities/overview). Cada entidade é definida em um arquivo `.json` ou `.jsonc` separado. Crie este diretório quando estiver pronto para definir sua primeira entidade.

#### functions/

Diretório que contém [funções de backend](/developers/backend/resources/backend-functions/overview) serverless. Cada função requer seu próprio subdiretório com um arquivo de código `entry.ts` ou `entry.js`. A CLI usa o caminho do diretório relativo à raiz de funções como o nome da função. Por exemplo, `functions/sendEmail/entry.ts` cria uma função chamada `sendEmail`. Você pode opcionalmente adicionar um arquivo de configuração `function.jsonc` para customizar o nome da função ou adicionar automations.

<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

Impede que arquivos sejam commitados no controle de versão. Seu projeto começa com este arquivo para evitar que `.app.jsonc` seja commitado.

### Pastas de skills do agente de IA

Quando você cria um projeto com `base44 create`, [skills do agente de IA](/developers/backend/overview/base44-skills) são instaladas automaticamente. Elas aparecem em pastas específicas do agente, como `.claude/skills/`, `.cursor/skills/` ou similares, dependendo de qual assistente de codificação de IA você usa. Essas pastas ajudam seu agente de codificação a entender como trabalhar com a Base44 e são seguras para commit no controle de versão.

## Veja também

* [Quickstart - Somente backend](/developers/backend/quickstart/templates/quickstart-backend-only): Crie seu primeiro projeto somente backend
* [Quickstart - React](/developers/backend/quickstart/templates/quickstart-react-template): Construa um app React full-stack com a Base44
* [Comando `types generate`](/developers/references/cli/commands/types-generate): Gere tipos TypeScript do seu projeto
* [Dynamic Types](/developers/references/sdk/getting-started/dynamic-types): Obtenha segurança de tipo para seu código do SDK
* [Entidades](/developers/backend/resources/entities/overview): Saiba sobre configuração de schema do banco de dados
* [Funções de backend](/developers/backend/resources/backend-functions/overview): Crie endpoints de API serverless
* [Agentes de IA](/developers/backend/resources/agents-config): Configure agentes de IA para seu app
* [Conectores](/developers/backend/resources/connectors): Configure conexões OAuth com serviços de terceiros
* [Auth Config](/developers/backend/resources/auth): Gerencie os métodos de login do seu app

<Note>Esta página foi traduzida usando IA. Para informações mais precisas e atualizadas, consulte a [versão em inglês](/). </Note>
