CommunityProgramación y desarrollogithub.com

hasaneks/web-craft-arch

Reglas de arquitectura e integración para aplicaciones web React (Next.js App Router o React con Vite): límites entre componentes servidor y cliente, capa de API única con modelo de errores tipado, propiedad del estado, react-hook-form + Zod con errores de servidor mapeados a campos, límites de estado (loading.tsx, error.tsx, Suspense), arquitectura i18n (registro de locales, orden de resolución, política de URL, local por solicitud, catálogos, kit y locale de fecha), RTL con propiedades lógicas, autenticación, XSS, CSRF, aislamiento de secretos y caché.

¿Qué es web-craft-arch?

Este skill define la arquitectura y reglas de integración para aplicaciones web React modernas, tanto con Next.js App Router como con React + Vite. Proporciona directrices claras sobre los límites entre componentes servidor y cliente, asegurando que los componentes interactivos sean pequeñas islas y que el código del servidor (como secretos o clientes ORM) nunca se filtre al bundle del cliente. Establece una única capa de API con un modelo de errores tipado y un cliente de fetch centralizado, evitando que cada funcionalidad construya su propia lógica de red. Para el manejo de formularios, promueve react-hook-form + Zod con validación del servidor, mapeo de errores a campos y prevención de doble envío. La internacionalización se trata como un pilar arquitectónico con un motor real, registro de locales, catálogos por local y espacio de nombres, y el mismo locale inicial en servidor y cliente. También cubre seguridad (autorización en backend, sanitización de HTML, protección CSRF), temas (preferencia del usuario vs. tema aplicado, sin destello), SEO y adaptación específica para frameworks y kits de UI como shadcn/ui, Ant Design y Material UI.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Arquitectura de aplicaciones web

Primero lee web-craft. Carga solo las referencias que la tarea necesite; los adaptadores de kit y framework solo para el kit y framework elegidos.

Mapa

TemaReferencia
Componentes servidor vs. cliente, BFF, límite de entorno y secretosreferences/server-client.md
Capa de API, modelo de errores, propiedad del estado, formularios, UI optimista, estado de URLreferences/data-forms.md
Límites de carga, error y no encontrado, reintento, sin conexión, temporización de esqueletoreferences/states.md
i18n: registro, resolución, URL, catálogos, formato, cabecera de backendreferences/i18n.md
RTL, propiedades lógicas, iconos direccionales, portalesreferences/rtl.md
Autenticación, autorización, XSS, CSRF, cookies, aislamiento de caché, datos personalesreferences/auth-security.md
Tema: preferencia del usuario vs. tema aplicado, cambios del sistema, sin destelloreferences/theming.md
SEO para páginas públicasreferences/seo.md
GEO: visibilidad en búsqueda AI y asistentesreferences/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
Trabajar con un backend node-craft (o cualquier OpenAPI)references/node-craft-contract.md
Fuentes oficiales y fechas de revisiónreferences/sources.md

Reglas que aplican en todas partes

  1. Límites por necesidad. Un componente es un componente cliente porque necesita interactividad, APIs del navegador o estado del cliente, no por defecto. Mantén las islas interactivas pequeñas. Nunca importes código solo de servidor, clientes ORM o secretos en código cliente; una variable de entorno pública no es un secreto.
  2. Una capa de API. Un cliente de fetch, un modelo de errores tipado con códigos estables y estado, un comportamiento de autenticación. Las funcionalidades no construyen su propio fetch y reintento. Los datos del servidor viven en la capa de consulta/caché, el estado global del cliente en un store pequeño o contexto, el estado del formulario en la herramienta de formularios, el estado local de la UI en el componente. Una fuente mock se activa mediante configuración para desarrollo y pruebas, nunca editando funcionalidades; las respuestas no confiables se analizan en tiempo de ejecución.
  3. Formularios. react-hook-form + Zod a menos que el proyecto tenga otra herramienta. mode: 'onTouched', reValidateMode: 'onChange', enfoque y desplazamiento al primer error, errores de campo del servidor mediante setError, valores mantenidos después de errores, doble envío bloqueado. El servidor sigue siendo la autoridad en validación.
  4. Los estados tienen límites. Límites de carga y error a nivel de ruta más Suspense local donde los datos fluyen; un widget que falla no deja la página en blanco.
  5. i18n es arquitectura. Un motor real, un registro de locales (etiqueta BCP 47, dirección, catálogo, nombre visible), fallback a inglés a menos que se elija otra cosa, local por solicitud en el servidor, el mismo local inicial en servidor y cliente, catálogos cargados por local y espacio de nombres, kit y locale de fecha mapeados desde el local de la aplicación.
  6. La seguridad es del lado del servidor. Autorización en el backend. Sanitiza cualquier HTML que renderices. Las sesiones con cookies necesitan protección CSRF. Las respuestas personales nunca entran en una caché compartida; las respuestas que dependen del local y del usuario varían sus claves de caché.
  7. Las páginas públicas son encontrables. Metadatos correctos según el local renderizados en el servidor, canonical por idioma, alternativas hreflang solo para contrapartes reales, sitemap, datos estructurados que coincidan con el contenido visible. GEO comienza con eso: contenido indexable y citable, y una política explícita para rastreadores de IA. Sin garantías de ranking o citación.
  8. Los kits se adaptan, no se envuelven. El tema y los tokens provienen de las decisiones de diseño del producto. Envuelve un componente del kit solo para comportamiento repetido del producto o para fijar una API. No apiles un segundo sistema de animación sobre las transiciones propias del kit.

Hecho

Aplica web-craft → hecho, más: ningún bundle del cliente contiene un secreto o módulo solo de servidor; dos solicitudes concurrentes en diferentes locales o de diferentes usuarios no pueden mezclar datos; el primer renderizado está en el idioma y tema correctos; cada combinación kit/framework indicada fue realmente verificada.

Individual skills in this repo

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

Skills relacionados