Communitygithub.com

marnixGeerkens/rocketlauncher-claude-code

Frontend-Entwicklungsrichtlinien für React/TypeScript-Anwendungen. Moderne Patterns wie Suspense, Lazy Loading, useSuspenseQuery, Dateiorganisation mit Features-Verzeichnis, MUI v7 Styling, TanStack Router, Performance-Optimierung und TypeScript-Best Practices. Verwenden Sie dies beim Erstellen von Komponenten, Seiten, Features, Datenabruf, Styling, Routing oder bei der Arbeit mit Frontend-Code.

Was ist rocketlauncher-claude-code?

Diese Skill bietet umfassende Richtlinien für die moderne React-Entwicklung mit TypeScript, mit Fokus auf Suspense-basierten Datenabruf, Lazy Loading und Performance-Optimierung. Sie deckt wichtige Bereiche wie Komponentenerstellung, Datenabruf mit TanStack Query, Routing mit TanStack Router, Styling mit MUI v7, Dateiorganisation mit Features-Verzeichnissen und Barrierefreiheit ab. Die Skill ist besonders nützlich für Entwickler, die mit Frameworks wie Claude Code, Cursor oder Codex arbeiten, da sie klare, wiederholbare Patterns und Checklisten für die tägliche Arbeit bereitstellt. Sie enthält detaillierte Anleitungen zu Themen wie useSuspenseQuery für Datenabruf, React.lazy für Code-Splitting, Import-Aliase, Vermeidung von frühen Returns mit Ladestatus und Verwendung von useMuiSnackbar für Benachrichtigungen. Die Struktur ist modular mit progressiver Beladung für optimales Kontextmanagement, was die Skill ideal für die Integration in KI-gestützte Entwicklungstools macht.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/marnixGeerkens/rocketlauncher-claude-code/tree/HEAD/components/skills/development/frontend-dev-guidelines

In Ihrer bevorzugten KI fragen

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

Dokumentation

Frontend-Entwicklungsrichtlinien

Zweck

Umfassender Leitfaden für moderne React-Entwicklung mit Schwerpunkt auf Suspense-basiertem Datenabruf, Lazy Loading, korrekter Dateiorganisation und Performance-Optimierung.

Wann diese Skill verwenden

  • Erstellen neuer Komponenten oder Seiten
  • Aufbau neuer Features
  • Datenabruf mit TanStack Query
  • Einrichten des Routings mit TanStack Router
  • Styling von Komponenten mit MUI v7
  • Performance-Optimierung
  • Organisieren von Frontend-Code
  • TypeScript-Best Practices

Schnellstart

Checkliste für neue Komponenten

Eine Komponente erstellen? Folgen Sie dieser Checkliste:

  • Verwenden Sie das React.FC<Props>-Pattern mit TypeScript
  • Lazy laden, falls schwere Komponente: React.lazy(() => import())
  • In <SuspenseLoader> für Ladezustände einwickeln
  • useSuspenseQuery für Datenabruf verwenden
  • Import-Aliase: @/, ~types, ~components, ~features
  • Styles: Inline bei <100 Zeilen, separate Datei bei >100 Zeilen
  • useCallback für Event-Handler, die an Kinder übergeben werden
  • Standard-Export am Ende
  • Keine frühen Returns mit Lade-Spinnern
  • useMuiSnackbar für Benutzerbenachrichtigungen verwenden

Checkliste für neue Features

Ein Feature erstellen? Richten Sie diese Struktur ein:

  • features/{feature-name}/-Verzeichnis erstellen
  • Unterverzeichnisse erstellen: api/, components/, hooks/, helpers/, types/
  • API-Service-Datei erstellen: api/{feature}Api.ts
  • TypeScript-Typen in types/ einrichten
  • Route in routes/{feature-name}/index.tsx erstellen
  • Feature-Komponenten lazy laden
  • Suspense-Grenzen verwenden
  • Öffentliche API aus Feature-index.ts exportieren

Import-Alias-Referenz

AliasLöst aufBeispiel
@/src/import { apiClient } from '@/lib/apiClient'
~typessrc/typesimport type { User } from '~types/user'
~componentssrc/componentsimport { SuspenseLoader } from '~components/SuspenseLoader'
~featuressrc/featuresimport { authApi } from '~features/auth'

Definiert in: vite.config.ts Zeilen 180-185


Spickzettel für häufige Imports

// React & Lazy Loading
import React, { useState, useCallback, useMemo } from 'react';
const Heavy = React.lazy(() => import('./Heavy'));

// MUI-Komponenten
import { Box, Paper, Typography, Button, Grid } from '@mui/material';
import type { SxProps, Theme } from '@mui/material';

// TanStack Query (Suspense)
import { useSuspenseQuery, useQueryClient } from '@tanstack/react-query';

// TanStack Router
import { createFileRoute } from '@tanstack/react-router';

// Projekt-Komponenten
import { SuspenseLoader } from '~components/SuspenseLoader';

// Hooks
import { useAuth } from '@/hooks/useAuth';
import { useMuiSnackbar } from '@/hooks/useMuiSnackbar';

// Typen
import type { Post } from '~types/post';

Themenführer

🎨 Komponenten-Patterns

Moderne React-Komponenten verwenden:

  • React.FC<Props> für Typsicherheit
  • React.lazy() für Code-Splitting
  • SuspenseLoader für Ladezustände
  • Benannte Konstante + Standard-Export-Pattern

Wichtige Konzepte:

  • Schwere Komponenten lazy laden (DataGrid, Diagramme, Editoren)
  • Lazy-Komponenten immer in Suspense einwickeln
  • SuspenseLoader-Komponente verwenden (mit Einblend-Animation)
  • Komponenten-Struktur: Props → Hooks → Handler → Rendern → Exportieren

📖 Vollständiger Leitfaden: resources/component-patterns.md


📊 Datenabruf

PRIMÄRES PATTERN: useSuspenseQuery

  • Mit Suspense-Grenzen verwenden
  • Cache-First-Strategie (Grid-Cache vor API prüfen)
  • Ersetzt isLoading-Prüfungen
  • Typsicher mit Generics

API-Service-Ebene:

  • features/{feature}/api/{feature}Api.ts erstellen
  • apiClient axios-Instanz verwenden
  • Zentralisierte Methoden pro Feature
  • Routenformat: /form/route (NICHT /api/form/route)

📖 Vollständiger Leitfaden: resources/data-fetching.md


📁 Dateiorganisation

features/ vs components/:

  • features/: Domänenspezifisch (posts, comments, auth)
  • components/: Wirklich wiederverwendbar (SuspenseLoader, CustomAppBar)

Feature-Unterverzeichnisse:

features/
  my-feature/
    api/          # API-Service-Ebene
    components/   # Feature-Komponenten
    hooks/        # Eigene Hooks
    helpers/      # Hilfsfunktionen
    types/        # TypeScript-Typen

📖 Vollständiger Leitfaden: resources/file-organization.md


🎨 Styling

Inline vs. getrennt:

  • <100 Zeilen: Inline const styles: Record<string, SxProps<Theme>>
  • 100 Zeilen: Separate .styles.ts-Datei

Primäre Methode:

  • sx-Prop für MUI-Komponenten verwenden
  • Typsicher mit SxProps<Theme>
  • Theme-Zugriff: (theme) => theme.palette.primary.main

MUI v7 Grid:

<Grid size={{ xs: 12, md: 6 }}>  // ✅ v7-Syntax
<Grid xs={12} md={6}>             // ❌ Alte Syntax

📖 Vollständiger Leitfaden: resources/styling-guide.md


🛣️ Routing

TanStack Router - Ordnerbasiert:

  • Verzeichnis: routes/my-route/index.tsx
  • Komponenten lazy laden
  • createFileRoute verwenden
  • Breadcrumb-Daten im Loader

Beispiel:

import { createFileRoute } from '@tanstack/react-router';
import { lazy } from 'react';

const MyPage = lazy(() => import('@/features/my-feature/components/MyPage'));

export const Route = createFileRoute('/my-route/')({
    component: MyPage,
    loader: () => ({ crumb: 'My Route' }),
});

📖 Vollständiger Leitfaden: resources/routing-guide.md


⏳ Lade- und Fehlerzustände

KRITISCHE REGEL: Keine frühen Returns

// ❌ NIE - Verursacht Layout-Verschiebung
if (isLoading) {
    return <LoadingSpinner />;
}

// ✅ IMMER - Konsistentes Layout
<SuspenseLoader>
    <Content />
</SuspenseLoader>

Warum: Verhindert kumulative Layout-Verschiebung (CLS), bessere Benutzererfahrung

Fehlerbehandlung:

  • useMuiSnackbar für Benutzerfeedback verwenden
  • NIE react-toastify
  • TanStack Query onError-Callbacks

📖 Vollständiger Leitfaden: resources/loading-and-error-states.md


⚡ Performance

Optimierungs-Patterns:

  • useMemo: Teure Berechnungen (filtern, sortieren, mappen)
  • useCallback: Event-Handler, die an Kinder übergeben werden
  • React.memo: Teure Komponenten
  • Debounced-Suche (300-500ms)
  • Speicherleck-Prävention (Bereinigung in useEffect)

📖 Vollständiger Leitfaden: resources/performance.md


📘 TypeScript

Standards:

  • Strenger Modus, kein any-Typ
  • Explizite Rückgabetypen bei Funktionen
  • Typ-Imports: import type { User } from '~types/user'
  • Komponenten-Prop-Schnittstellen mit JSDoc

📖 Vollständiger Leitfaden: resources/typescript-standards.md


🔧 Häufige Patterns

Abgedeckte Themen:

  • React Hook Form mit Zod-Validierung
  • DataGrid-Wrapper-Verträge
  • Dialog-Komponentenstandards
  • useAuth-Hook für aktuellen Benutzer
  • Mutations-Patterns mit Cache-Invalidierung

📖 Vollständiger Leitfaden: resources/common-patterns.md


📚 Vollständige Beispiele

Voll funktionsfähige Beispiele:

  • Moderne Komponente mit allen Patterns
  • Vollständige Feature-Struktur
  • API-Service-Ebene
  • Route mit Lazy Loading
  • Suspense + useSuspenseQuery
  • Formular mit Validierung

📖 Vollständiger Leitfaden: resources/complete-examples.md


Navigationsleitfaden

Bei Bedarf...Diese Ressource lesen
Eine Komponente erstellencomponent-patterns.md
Daten abrufendata-fetching.md
Dateien/Ordner organisierenfile-organization.md
Komponenten stylenstyling-guide.md
Routing einrichtenrouting-guide.md
Lade-/Fehlerzustände behandelnloading-and-error-states.md
Performance optimierenperformance.md
TypeScript-Typentypescript-standards.md
Formulare/Auth/DataGridcommon-patterns.md
Vollständige Beispiele sehencomplete-examples.md

Kernprinzipien

  1. Alles Schwere lazy laden: Routen, DataGrid, Diagramme, Editoren
  2. Suspense für Laden: SuspenseLoader verwenden, keine frühen Returns
  3. useSuspenseQuery: Primäres Datenabruf-Pattern für neuen Code
  4. Features sind organisiert: api/, components/, hooks/, helpers/-Unterverzeichnisse
  5. Styles basierend auf Größe: <100 inline, >100 getrennt
  6. Import-Aliase: @/, ~types, ~components, ~features verwenden
  7. Keine frühen Returns: Verhindert Layout-Verschiebung
  8. useMuiSnackbar: Für alle Benutzerbenachrichtigungen

Kurzreferenz: Dateistruktur

src/
  features/
    my-feature/
      api/
        myFeatureApi.ts       # API-Service
      components/
        MyFeature.tsx         # Hauptkomponente
        SubComponent.tsx      # Verwandte Komponenten
      hooks/
        useMyFeature.ts       # Eigene Hooks
        useSuspenseMyFeature.ts  # Suspense-Hooks
      helpers/
        myFeatureHelpers.ts   # Hilfsfunktionen
      types/
        index.ts              # TypeScript-Typen
      index.ts                # Öffentliche Exporte

  components/
    SuspenseLoader/
      SuspenseLoader.tsx      # Wiederverwendbarer Loader
    CustomAppBar/
      CustomAppBar.tsx        # Wiederverwendbare App-Leiste

  routes/
    my-route/
      index.tsx               # Routenkomponente
      create/
        index.tsx             # Verschachtelte Route

Moderne Komponentenvorlage (Schnellkopie)

import React, { useState, useCallback } from 'react';
import { Box, Paper } from '@mui/material';
import { useSuspenseQuery } from '@tanstack/react-query';
import { featureApi } from '../api/featureApi';
import type { FeatureData } from '~types/feature';

interface MyComponentProps {
    id: number;
    onAction?: () => void;
}

export const MyComponent: React.FC<MyComponentProps> = ({ id, onAction }) => {
    const [state, setState] = useState<string>('');

    const { data } = useSuspenseQuery({
        queryKey: ['feature', id],
        queryFn: () => featureApi.getFeature(id),
    });

    const handleAction = useCallback(() => {
        setState('updated');
        onAction?.();
    }, [onAction]);

    return (
        <Box sx={{ p: 2 }}>
            <Paper sx={{ p: 3 }}>
                {/* Inhalt */}
            </Paper>
        </Box>
    );
};

export default MyComponent;

Vollständige Beispiele finden Sie unter resources/complete-examples.md


Verwandte Skills

  • error-tracking: Fehlerverfolgung mit Sentry (gilt auch für das Frontend)
  • backend-dev-guidelines: Backend-API-Patterns, die das Frontend konsumiert

Skill-Status: Modulare Struktur mit progressiver Beladung für optimales Kontextmanagement

Individual skills in this repo

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

marnixGeerkens/rocketlauncher-claude-code

When the user wants to optimize, improve, or increase conversions on any marketing page — including homepage, landing pages, pricing pages, feature pages, or blog posts. Also use when the user says "CRO," "conversion rate optimization," "this page isn't converting," "improve conversions," or "why isn't this page working." For signup/registration flows, see signup-flow-cro. For post-signup activation, see onboarding-cro. For forms outside of signup, see form-cro. For popups/modals, see popup-cro.

marnixGeerkens/rocketlauncher-claude-code

Balance visual design with ATS compatibility for creative roles. Use when the user is in design, art, writing, marketing creative, or any visual/creative field and needs a resume that looks distinctive but still parses.

marnixGeerkens/rocketlauncher-claude-code

Transform resume bullets into detailed portfolio case studies with context, action, and outcome. Use when the user mentions portfolio, case study, project write-up, or expanding a resume bullet into a longer narrative.

marnixGeerkens/rocketlauncher-claude-code

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities. Use when: portfolio, personal website, showcase work, developer portfolio, designer portfolio.

marnixGeerkens/rocketlauncher-claude-code

Tailwind CSS v4 principles. CSS-first configuration, container queries, modern patterns, design token architecture.

marnixGeerkens/rocketlauncher-claude-code

Frontend development patterns for React, Next.js, state management, performance optimization, and UI best practices.

marnixGeerkens/rocketlauncher-claude-code

Next.js App Router principles. Server Components, data fetching, routing patterns.

marnixGeerkens/rocketlauncher-claude-code

Expert integration of Supabase Auth with Next.js App Router Use when: supabase auth next, authentication next.js, login supabase, auth middleware, protected route.

marnixGeerkens/rocketlauncher-claude-code

Comprehensive frontend development skill for building modern, performant web applications using ReactJS, NextJS, TypeScript, Tailwind CSS. Includes component scaffolding, performance optimization, bundle analysis, and UI best practices. Use when developing frontend features, optimizing performance, implementing UI/UX designs, managing state, or reviewing frontend code.

marnixGeerkens/rocketlauncher-claude-code

Create API handoff documentation for frontend developers. Use when backend work is complete and needs to be documented for frontend integration, or user says 'create handoff', 'document API', 'frontend handoff', or 'API documentation'.

marnixGeerkens/rocketlauncher-claude-code

Document frontend data needs for backend developers. Use when frontend needs to communicate API requirements to backend, or user says 'backend requirements', 'what data do I need', 'API requirements', or is describing data needs for a UI.

marnixGeerkens/rocketlauncher-claude-code

Comprehensive Python library for astronomy and astrophysics. This skill should be used when working with astronomical data including celestial coordinates, physical units, FITS files, cosmological calculations, time systems, tables, world coordinate systems (WCS), and astronomical data analysis. Use when tasks involve coordinate transformations, unit conversions, FITS file manipulation, cosmological distance calculations, time scale conversions, or astronomical data processing.

marnixGeerkens/rocketlauncher-claude-code

Comprehensive patterns for Next.js 14+ App Router architecture, Server Components, and modern full-stack React development.

Verwandte Skills