hasaneks/web-craft-arch

Regras de arquitetura e integração para aplicações web React (Next.js App Router ou React com Vite): limites entre componentes servidor e cliente, camada de API única com modelo de erros tipado, propriedade de estado, react-hook-form + Zod com erros do servidor mapeados para campos, limites de estado (loading.tsx, error.tsx, Suspense), arquitetura i18n (registro de localidade, ordem de resolução, política de URL, localidade por escopo de requisição, catálogos, kit e localidade de data), RTL com propriedades lógicas, autenticação, XSS, CSRF, segredos e isolamento de cache.

O que é web-craft-arch?

Este skill define uma arquitetura completa e rigorosa para aplicações web React modernas, abrangendo tanto Next.js (App Router) quanto React com Vite. Seu objetivo é estabelecer padrões claros e consistentes para separação entre componentes servidor e cliente, garantindo que nenhum código ou segredo do servidor vaze para o bundle do cliente. A arquitetura impõe uma camada de API única com um modelo de erros tipado, gerenciamento de estado centralizado (dados do servidor, estado global, estado de formulário, estado local) e uso padronizado de react-hook-form + Zod com tratamento de erros do servidor mapeados para campos específicos. O skill também detalha a implementação de internacionalização (i18n) com registro de localidade, resolução por ordem de precedência, política de URL, localidade por escopo de requisição e catálogos carregados sob demanda, além de suporte a RTL (direita para esquerda) com propriedades lógicas CSS. A segurança é tratada estritamente no lado do servidor, com autorização, sanitização de HTML, proteção CSRF em sessões de cookies e isolamento de cache para dados pessoais ou dependentes de localidade. Ele fornece referências detalhadas para adaptadores de frameworks (Next.js, Vite) e kits de UI (shadcn/ui, Ant Design, Material UI), promovendo uma arquitetura onde os kits são adaptados ao invés de encapsulados, mantendo a coerência visual e de tokens definida pelo produto.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hasaneks/web-craft/tree/HEAD/skills/web-craft-arch

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Arquitetura de aplicação web

Leia web-craft primeiro. Carregue apenas as referências que a tarefa precisa; adaptadores de kit e framework apenas para o kit e framework escolhidos.

Mapa

TópicoReferência
Componentes servidor vs cliente, BFF, limite de env e segredosreferences/server-client.md
Camada de API, modelo de erros, propriedade de estado, formulários, UI otimista, estado de URLreferences/data-forms.md
Limites de carregamento, erro e não encontrado, retry, offline, temporização de skeleton`references/states.md``
i18n: registro, resolução, URL, catálogos, formatação, cabeçalho de backendreferences/i18n.md
RTL, propriedades lógicas, ícones direcionais, portaisreferences/rtl.md
Autenticação, autorização, XSS, CSRF, cookies, isolamento de cache, dados pessoaisreferences/auth-security.md
Tema: preferência do usuário vs tema aplicado, mudanças no sistema, sem flashreferences/theming.md
SEO para páginas públicasreferences/seo.md
GEO: visibilidade em busca de IA e assistentesreferences/geo.md
Adaptador Next.js App Routerreferences/fw-next.md
Adaptador React + Vitereferences/fw-vite.md
Adaptador shadcn/uireferences/kit-shadcn.md
Adaptador Ant Designreferences/kit-antd.md
Adaptador Material UIreferences/kit-mui.md
Trabalhando com um backend node-craft (ou qualquer OpenAPI)references/node-craft-contract.md
Fontes oficiais e datas de revisãoreferences/sources.md

Regras que valem em toda parte

  1. Limites por necessidade. Um componente é um componente cliente porque precisa de interatividade, APIs de navegador ou estado do cliente, não por padrão. Mantenha ilhas interativas pequenas. Nunca importe código exclusivo do servidor, clientes ORM ou segredos para código cliente; uma variável de ambiente pública não é um segredo.
  2. Uma camada de API. Um cliente fetch, um modelo de erros tipado chaveado por códigos e status estáveis, um comportamento de autenticação. Funcionalidades não constroem seu próprio fetch e retry. Dados do servidor vivem na camada de consulta/cache, estado global do cliente em um store ou contexto pequeno, estado de formulário na ferramenta de formulário, estado de UI local no componente. Uma fonte mock é ativada por configuração para desenvolvimento e testes, nunca editando funcionalidades; respostas não confiáveis são analisadas em tempo de execução.
  3. Formulários. react-hook-form + Zod a menos que o projeto tenha outra ferramenta. mode: 'onTouched', reValidateMode: 'onChange', foco e rolagem para o primeiro erro, erros de campo do servidor através de setError, valores mantidos após erros, envio duplo bloqueado. O servidor permanece a autoridade em validação.
  4. Estados têm limites. Limites de carregamento e erro no nível de rota, mais Suspense local onde dados são transmitidos; um widget com falha não apaga a página.
  5. i18n é arquitetura. Um mecanismo real, um registro de localidade (tag BCP 47, direção, catálogo, nome de exibição), fallback para inglês a menos que escolhido de outra forma, localidade por escopo de requisição no servidor, a mesma localidade inicial no servidor e cliente, catálogos carregados por localidade e namespace, kit e localidade de data mapeados a partir da localidade da aplicação.
  6. Segurança é no lado do servidor. Autorização no backend. Sanitize qualquer HTML que você renderizar. Sessões de cookies precisam de proteção CSRF. Respostas pessoais nunca vão para um cache compartilhado; respostas dependentes de localidade e usuário variam suas chaves de cache.
  7. Páginas públicas são encontráveis. Metadados corretos para a localidade renderizados no servidor, canônico por idioma, alternativas hreflang apenas para contrapartes reais, sitemap, dados estruturados que correspondem ao conteúdo visível. GEO começa com isso: conteúdo indexável, citável e uma política explícita de rastreadores de IA. Sem garantias de classificação ou citação.
  8. Kits são adaptados, não encapsulados. Tema e tokens vêm das decisões de design do produto. Encapsule um componente de kit apenas para comportamento repetido do produto ou para fixar uma API. Não empilhe um segundo sistema de animação sobre as transições próprias de um kit.

Feito

Aplique web-craft → feito, além de: nenhum bundle do cliente contém um segredo ou módulo exclusivo do servidor; duas requisições concorrentes em localidades diferentes ou para usuários diferentes não podem misturar dados; a primeira renderização está no idioma e tema corretos; toda combinação de kit/framework declarada foi realmente verificada.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas