Edgerunners

Rendering-Architektur

Eine Frontend-Architektur, gewählt danach, wie Ihr Produkt genutzt wird

Das richtige Rendering-Modell hängt davon ab, wer die Seite zuerst lesen muss: eine Suchmaschine, ein wiederkehrender Nutzer oder ein Gerät mit schwacher Verbindung. Wir wählen zwischen clientseitigem Rendering, serverseitigem Rendering, statischer Generierung und hybriden Frameworks wie Next.js und Nuxt – je nach Inhalt, Zielgruppe und wie oft sich Ihre Daten ändern.

SSR vs. CSR vs. statisch: Was passt?

AnsatzFunktionsweisePasst gut fürAchten Sie auf
Clientseitiges Rendering (SPA)Der Browser lädt JavaScript und baut die Seite aufDashboards und Tools hinter einem LoginCrawler sehen wenig Inhalt; der erste Seitenaufbau ist auf einfachen Smartphones langsamer
Serverseitiges Rendering (SSR)Der Server sendet bei jeder Anfrage fertiges HTML, danach wird die Seite interaktivShops, Marktplätze und Listings, die sich oft ändern und indexiert werden müssenServerkosten und Hydration-Zeit
Statische Generierung (SSG)HTML wird einmal beim Deployment erzeugtDokumentation, Marketingseiten, BlogsBei Inhaltsänderungen ist ein neuer Build nötig
Inkrementelle RegenerierungStatische Seiten werden im Hintergrund neu erzeugt, wenn sich Daten ändernGroße Kataloge mit Tausenden SeitenDie Cache-Invalidierung braucht sorgfältiges Design
Hybrid (Next.js, Nuxt)Jede Route wählt ihr eigenes Modell; Server-Komponenten streamen HTMLEin Shop mit Kundenbereich oder ein SaaS mit öffentlichen MarketingseitenMehr bewegliche Teile, daher braucht das Team klare Konventionen
Cross-Platform (React Native, Capacitor, Tauri, Electron)Eine Codebasis für Web, Mobile und DesktopProdukte, die App-Store-Präsenz oder Gerätehardware brauchenLücken zwischen nativen und Web-APIs müssen eingeplant werden

Ein typischer Onlineshop braucht beides. Produkt- und Kategorieseiten werden mit strukturierten Daten serverseitig gerendert, damit Suchmaschinen und KI-Assistenten Preise und Verfügbarkeit lesen können. Warenkorb, Filter und Checkout verhalten sich wie eine Single-Page-App. Hybride Frameworks ermöglichen beides in einer Codebasis.

Eine Codebasis, die klein und modular bleibt

Große Frontends werden langsam, wenn alles von allem abhängt. Wir strukturieren Projekte so, dass:

  • UI-Komponenten rein darstellend sind und ihre Daten von außen erhalten.
  • Geschäftslogik (Preisregeln, Validierung, Sync) in reinen TypeScript-Modulen liegt, die sich ohne Rendering testen lassen.
  • Features getrennte Module mit erzwungenen Grenzen sind, damit die Änderung eines Teams nicht unbemerkt den Screen eines anderen Teams kaputtmacht.
  • jede Route nur ihren eigenen Code lädt, damit ein neues Feature nicht jede Seite schwerer macht.

State- und Speichermanagement

Wir trennen die Arten von State, die gern vermischt werden:

  • Server-State

    Daten aus Ihrer API liegen in einem Query-Cache wie TanStack Query, mit klaren Regeln für Neuladen und Aktualität.

  • UI-State

    Geöffnete Panels und Auswahlen bleiben lokal in Komponenten oder in einem kleinen Store wie Zustand oder Pinia.

  • URL-State

    Filter, Tabs und Paginierung stehen in der URL, damit Ansichten geteilt und als Lesezeichen gespeichert werden können.

  • Persistenter State

    Entwürfe und Offline-Warteschlangen landen in IndexedDB.

Kassensysteme, Kiosks und Monitoring-Screens laufen tagelang ohne Neuladen. Dafür testen wir den Speicher über lange Sitzungen und räumen Subscriptions, Timer und Listener auf, damit die App am Ende einer Schicht nicht langsamer wird.

Frontend-Sicherheit

Wir nutzen, was der Browser bietet, um den Schaden zu begrenzen, falls etwas schiefgeht:

  • Eine Content Security Policy, die eingeschleuste Skripte blockiert, plus Trusted Types, wo unterstützt.
  • Subresource Integrity für Skripte von Drittanbietern.
  • Session-Tokens in HttpOnly- und Secure-Cookies statt in localStorage.
  • Bereinigung jedes von Nutzern gelieferten HTML vor dem Rendern.
  • Abhängigkeitsprüfungen und fixierte Versionen in der CI.
  • Permissions Policy und Sandbox-iframes für Widgets von Drittanbietern.
  • Niemals Secrets im Client-Bundle.

FAQ

Häufig gestellte Fragen

01Sollten wir Next.js verwenden?

Wenn Sie öffentliche Seiten mit Suchmaschinen-Sichtbarkeit und ein App-Erlebnis hinter einem Login haben, passt es oft gut. Liegt Ihr gesamtes Produkt hinter einem Login, ist eine clientseitige App mit schneller statischer Hülle meist einfacher und günstiger im Betrieb.

02Können Sie ein altes Create-React-App-, AngularJS- oder Vue-2-Projekt migrieren, ohne die Feature-Arbeit zu stoppen?

Ja. Wir migrieren Route für Route hinter einem Proxy, sodass alte und neue App parallel laufen, bis die Migration abgeschlossen ist.

03Bevorzugen Sie ein bestimmtes Framework?

Wir bevorzugen das, das Ihr Team warten kann. Das Architecture Decision Record erklärt die Wahl, damit sie später überprüft werden kann.

Nächster Schritt

Beginnen Sie mit einem Review des Bestehenden

Senden Sie uns Ihr Repository oder einen Staging-Link. Wir melden uns mit den drei Änderungen, die den größten Unterschied für Ihre Release-Geschwindigkeit, Performance und Zuverlässigkeit machen würden.