02 · Explorar a anatomia
Antes de mudar qualquer coisa, entenda as quatro peças que fazem o app funcionar: o manifesto, o mapa de plugins gerado, o registry de código custom e o AGENTS.md. Depois deste passo você sabe onde tocar para cada tipo de mudança.
app.manifest.json — o centro de tudo
É o arquivo que descreve o app inteiro. Recém-criado, um app admin se parece com isto:
{
"manifestVersion": 2,
"id": "minha-loja",
"name": "minha-loja",
"backend": { "provider": "mock" },
"locale": {
"default": "pt-BR",
"supported": ["pt-BR", "en"],
"currency": "BRL"
},
"theme": { "brand": "violet" },
"surfaces": {
"admin": {
"scaffold": "admin",
"plugins": [{ "id": "dashboard" }],
"pages": []
}
}
}
Três blocos importam mais do que os outros:
surfaces— cada surface é uma face do app (admin,storefront,member). Ela declara umscaffold(o layout do shell), a lista depluginsepagesextras. A navegação é derivada dos plugins: você liga um plugin e as rotas e o menu aparecem — você não escreve rotas à mão.plugins— dentro da surface, cada item é só{ "id": "..." }. É assim que você adiciona uma capacidade (passo 04).backend—{ "provider": "mock" }roda com dados de exemplo e zero configuração. No passo 05 você troca para"supabase".
src/plugins.generated.ts — o mapa dos plugins
// Generated by 'fayz create'. Maps manifest plugin ids → platform-bundled plugin factories.
export {}
Esse arquivo liga os ids do manifesto aos factories reais dos plugins. Hoje ele vem vazio porque os plugins do catálogo são resolvidos pelo bundle da plataforma. Trate-o como gerado: você não edita à mão — o manifesto é a fonte da verdade.
src/registry.tsx — o seu código
// import { registerBlock } from './lib/fayz-runtime'
// registerBlock('custom:my-block', MyBlock)
export {}
É o ponto onde você registra blocos, páginas e componentes próprios (níveis 5–7 da escada de personalização) e depois os referencia no manifesto pelo id custom:. Enquanto você só configura, ele fica vazio.
AGENTS.md — o manual para um agente
O scaffold inclui um AGENTS.md descrevendo a estrutura, a checklist de personalização e o passo a passo do Supabase. A ideia é concreta: você pode abrir este app com um agente de IA e ele já sabe que "personalizar = editar o manifesto, não escrever código novo", onde ficam os arquivos e como conectar um banco real. É documentação para a máquina, versionada junto com o app.
Ver também: Conecte seu agente — como apontar o Claude Code, o Cursor ou o Codex para o AGENTS.md e o llms.txt.
✓ Você deve ver: abrindo o app.manifest.json, o bloco surfaces.admin.plugins com um único { "id": "dashboard" }. Guarde esse lugar — os próximos passos editam exatamente ele.