Atelier201 websiteJoin the waitlist
PlataformaModelo de conteúdo e mídia

Modelo de conteúdo e mídia

Como um site separa textos do layout, o que o editor, a API e os agentes validam e como a mídia funciona.

Todo site é um projeto Astro que mantém o que o proprietário altera em arquivos de conteúdo tipados e o layout no código. Uma página lê o conteúdo e organiza seu layout. Ela nunca contém o nome da empresa, um preço ou o horário de funcionamento.

O modelo de conteúdo é a lista desses tipos de conteúdo e seus campos. Ele é definido uma única vez em src/content.config.ts do projeto (um esquema Zod por tipo). A cada build, ele é exportado como JSON Schemas, e o editor, a API REST, o MCP e a CLI validam todas as alterações com base nele. Um valor que não se encaixa é rejeitado, com o nome do campo, e nada é salvo.

O modelo vem do build mais recente. Faça um novo build do site antes de consultar o modelo de conteúdo.

Coleções e itens únicos

Uma coleção contém várias entradas, uma por arquivo. O nome do arquivo é o slug da entrada: letras minúsculas, números e hífens. Um item único é um documento JSON em um caminho fixo.

O starter do Atelier201 inclui estes itens:

NomeTipoConteúdo
businessitem únicoNome, slogan, descrição, telefone, e-mail, endereço, horário de funcionamento, redes sociais, dados legais, links para reservas e mapas e idioma do site
themeitem únicoQuatro cores da marca, raio dos cantos, combinação de fontes e modo claro, escuro ou automático
navigationitem únicoLinks do cabeçalho, links do rodapé e botão de chamada para ação
integrationsitem únicoID do Google Analytics, domínio do Plausible e código adicionado ao cabeçalho ou ao fim do corpo
servicescoleção, JSONServiços com nome, descrição, preço, ordem e imagem
blogcoleção, MarkdownPublicações com título, descrição, data, autor, imagem de capa, tags, os serviços sobre os quais tratam (uma relação com services, pelo slug) e um indicador de rascunho

O starter é um esqueleto: inclui essas duas coleções como exemplos e não pressupõe nada sobre a empresa. O site pode excluir as coleções de que não precisa e adicionar as suas próprias (uma equipe, um menu, eventos).

Uma coleção de conteúdo usa Markdown: campos no front matter e um corpo. Uma coleção de dados usa JSON, sem corpo.

Uma nova entrada criada pela API ou pelo MCP começa como rascunho se a coleção tiver um campo de rascunho, para que alguém decida se ela deve ser exibida.

Altere o conteúdo sem comprometer o layout

Prefira as chamadas de conteúdo às alterações diretas nos arquivos para textos, entradas e informações da empresa:

TarefaRESTMCPCLI
Consultar o modeloLer o modelo de conteúdoget_content_modelatelier201 content model
Salvar uma entradaCriar ou atualizar uma entradasave_entryatelier201 content save
Alterar um textoAlterar um camposet_fieldatelier201 content set

Use as chamadas de arquivo somente para alterar código: um layout, um componente ou o próprio modelo de conteúdo. Para adicionar um campo, inclua-o em src/content.config.ts com .default() ou .optional() para manter válidas as entradas existentes.

Edição em linha: data-atelier201-field

O proprietário clica em um texto curto na página e o edita ali mesmo. Isso é possível porque o texto contém o endereço do campo de onde vem:

HTML
<h1 data-atelier201-field="business:/name">Morning Crumb Bakery</h1>
<time data-atelier201-field="business:/hours/2/close">15:00</time>

O endereço segue o formato <singleton>:<JSON pointer>: business, theme ou navigation, dois-pontos e, em seguida, um ponteiro RFC 6901 para o arquivo daquele item único. O mesmo endereço funciona com set_field e atelier201 content set.

Siga estas regras ao editar um componente:

  • Coloque o atributo em um elemento cujo texto completo corresponda exatamente ao campo, sem nenhum outro conteúdo dentro dele. O Atelier201 substitui o texto do elemento. Em “Ligue para nós: 555 0100”, envolva apenas o número em um span.
  • Mova o atributo junto com o elemento ao mudar seu estilo e adicione-o onde quer que um campo de item único apareça em um novo lugar.
  • Não o use em textos montados com vários campos, textos transformados (uma data formatada), corpos em Markdown ou entradas de coleção. Na página, uma entrada deve manter data-atelier201-entry="<collection>/<slug>" em seu contêiner.

O site continua estático

Um site feito para o Atelier201 é um site estático em Astro: sem adaptador de servidor, renderização no servidor, framework no cliente nem solicitações a outras origens durante a execução (incluindo fontes, tags de analytics e mapas incorporados). Ele usa um único idioma, definido em business.locale. Suas dependências são astro e @astrojs/mdx (desativada até que mdx() seja adicionada à configuração), pois o build é executado sem acesso à rede. O AGENTS.md do starter lista essas regras para um agente que edita o código.

Mídia

Envie uma imagem, um PDF ou um vídeo curto para o site e, em seguida, faça referência a ele como /media/<filename> no conteúdo, por exemplo, no campo coverImage de uma publicação do blog.

  • Cada arquivo pode ter até 20 MB. Pelo MCP, os arquivos enviados são codificados em base64 e limitados a 5 MB.
  • Adicione um texto alt às imagens para quem não consegue vê-las.
  • A mídia é contabilizada no armazenamento do plano: 100 MB em um rascunho e 5 GB em um Site.
  • Um arquivo enviado é incluído a partir do próximo build. Excluir um arquivo o remove dos builds seguintes, mas os builds já publicados mantêm sua cópia até serem substituídos por uma publicação mais recente.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search Atelier201 Docs documentation and read it in full, instead of answering from memory.

https://atelier201.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://atelier201.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.