CommunityCodierung & Entwicklunggithub.com

hasaneks/web-craft-arch

Architektur- und Integrationsregeln für React-Webanwendungen (Next.js App Router oder React mit Vite): Server- und Client-Komponentengrenzen, eine API-Schicht mit einem typisierten Fehlermodell, State Ownership, react-hook-form + Zod mit serverseitigen Fehlern, die auf Felder abgebildet werden, Zustandsgrenzen (loading.tsx, error.tsx, Suspense), i18n-Architektur (Locale-Registry, Auflösungsreihenfolge, URL-Richtlinie, request-scoped Locale, Kataloge, Kit- und Datums-Locale), RTL mit logischen Eigenschaften, Authentifizierung, XSS, CSRF, Geheimnisse und Cache-Isolation.

Was ist web-craft-arch?

Diese Skill-Sammlung definiert eine vollständige, produktionsreife Architektur für React-Webanwendungen, die mit Next.js App Router oder React + Vite gebaut werden. Sie legt klare Grenzen zwischen Server- und Client-Komponenten fest und stellt sicher, dass serverseitiger Code, ORM-Clients oder Geheimnisse niemals in den Client-Bundle gelangen. Die Architektur schreibt eine einzige API-Schicht mit einem einheitlichen Fetch-Client und einem typisierten Fehlermodell vor, das auf stabilen Fehlercodes und Statuscodes basiert. Für Formulare setzt sie auf react-hook-form in Kombination mit Zod und integriert serverseitige Validierungsfehler nahtlos über `setError`. Die i18n-Architektur umfasst eine Locale-Registry, die Auflösung mit Englisch als Fallback, request-scoped Locale auf dem Server, Kataloge pro Locale und Namespace sowie die Abbildung von App-Locale auf Kit- und Datums-Locale. Zusätzlich werden RTL-Unterstützung mit logischen CSS-Eigenschaften, Sicherheit (Authentifizierung, XSS, CSRF, Cache-Isolation), SEO und die Anbindung an gängige UI-Kits (shadcn/ui, Ant Design, Material UI) sowie Framework-Adapter abgedeckt.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Web-App-Architektur

Lies zuerst web-craft. Lade nur die Referenzen, die die Aufgabe benötigt; Kit- und Framework-Adapter nur für das gewählte Kit und Framework.

Karte

ThemaReferenz
Server- vs. Client-Komponenten, BFF, Umgebungsvariablen- und Geheimnisgrenzenreferences/server-client.md
API-Schicht, Fehlermodell, State Ownership, Formulare, optimistisches UI, URL-Statusreferences/data-forms.md
Lade-, Fehler- und NotFound-Grenzen, Wiederholung, Offline, Skelett-Timingreferences/states.md
i18n: Registry, Auflösung, URL, Kataloge, Formatierung, Backend-Headerreferences/i18n.md
RTL, logische Eigenschaften, richtungsabhängige Symbole, Portalereferences/rtl.md
Authentifizierung, Autorisierung, XSS, CSRF, Cookies, Cache-Isolation, persönliche Datenreferences/auth-security.md
Theme: Benutzereinstellung vs. angewendetes Theme, Systemänderungen, kein Flackernreferences/theming.md
SEO für öffentliche Seitenreferences/seo.md
GEO: Sichtbarkeit in KI-Suche und Assistentenreferences/geo.md
Next.js App Router Adapterreferences/fw-next.md
React + Vite Adapterreferences/fw-vite.md
shadcn/ui Adapterreferences/kit-shadcn.md
Ant Design Adapterreferences/kit-antd.md
Material UI Adapterreferences/kit-mui.md
Arbeit mit einem node-craft (oder OpenAPI) Backendreferences/node-craft-contract.md
Offizielle Quellen und Prüfungsdatenreferences/sources.md

Allgemeingültige Regeln

  1. Grenzen nach Bedarf. Eine Komponente ist eine Client-Komponente, weil sie Interaktivität, Browser-APIs oder Client-Status benötigt, nicht standardmäßig. Halte interaktive Inseln klein. Importiere niemals serverseitigen Code, ORM-Clients oder Geheimnisse in Client-Code; eine öffentliche Umgebungsvariable ist kein Geheimnis.
  2. Eine API-Schicht. Ein Fetch-Client, ein typisiertes Fehlermodell, das nach stabilen Codes und Status unterschlüsselt ist, ein Authentifizierungsverhalten. Features bauen kein eigenes Fetch und Retry. Serverdaten leben in der Query-/Cache-Schicht, globaler Client-Status in einem kleinen Store oder Kontext, Formularstatus im Formular-Tool, lokaler UI-Status in der Komponente. Eine Mock-Quelle wird durch Konfiguration für Entwicklung und Tests aktiviert, niemals durch Bearbeiten von Features; nicht vertrauenswürdige Antworten werden zur Laufzeit geparst.
  3. Formulare. react-hook-form + Zod, sofern das Projekt kein anderes Tool verwendet. mode: 'onTouched', reValidateMode: 'onChange', Fokus und Scrollen zum ersten Fehler, serverseitige Feld-Fehler über setError, Werte bleiben nach Fehlern erhalten, doppeltes Absenden wird blockiert. Der Server bleibt die Autorität für die Validierung.
  4. Zustände haben Grenzen. Routenweite Lade- und Fehlergrenzen sowie lokales Suspense, wo Daten gestreamt werden; ein fehlerhaftes Widget lässt nicht die gesamte Seite leer.
  5. i18n ist Architektur. Eine echte Engine, eine Locale-Registry (BCP 47-Tag, Richtung, Katalog, Anzeigename), Englisch als Fallback, sofern nicht anders gewählt, request-scoped Locale auf dem Server, dasselbe anfängliche Locale auf Server und Client, Kataloge werden pro Locale und Namespace geladen, Kit- und Datums-Locale werden vom App-Locale abgebildet.
  6. Sicherheit ist serverseitig. Autorisierung im Backend. Säubere jedes gerenderte HTML. Cookie-Sitzungen benötigen CSRF-Schutz. Persönliche Antworten werden niemals in einen gemeinsamen Cache gelegt; locale- und benutzerabhängige Antworten variieren ihre Cache-Schlüssel.
  7. Öffentliche Seiten sind auffindbar. Locale-korrekte Metadaten, die auf dem Server gerendert werden, kanonische URLs pro Sprache, hreflang-Alternativen nur für echte Gegenstücke, Sitemap, strukturierte Daten, die dem sichtbaren Inhalt entsprechen. GEO beginnt damit: indexierbare, zitierbare Inhalte und eine explizite KI-Crawler-Richtlinie. Keine Ranking- oder Zitierungsgarantien.
  8. Kits werden adaptiert, nicht umwickelt. Theme und Tokens stammen aus den Designentscheidungen des Produkts. Wickle eine Kit-Komponente nur für wiederholtes Produktverhalten oder zur Fixierung einer API ein. Staple kein zweites Animationssystem auf die eigenen Übergänge eines Kits.

Erledigt

web-craft anwenden → erledigt, plus: kein Client-Bundle enthält ein Geheimnis oder ein serverseitiges Modul; zwei gleichzeitige Anfragen in unterschiedlichen Locales oder für unterschiedliche Benutzer können keine Daten vermischen; das erste Rendering erfolgt in der richtigen Sprache und mit dem richtigen Theme; jede behauptete Kit-/Framework-Kombination wurde tatsächlich überprüft.

Individual skills in this repo

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

Verwandte Skills