Skip to content
12FallstudieSW · 12 von 10

Eine Marken-Website, vier Jahre lang ohne Neuschreibung gepflegt für eine zivilgesellschaftliche Organisation ohne Web-Team.

Eine europäische humanitäre Hilfsorganisation skalierte Anfang 2022 über Nacht. Wir bauten ihre öffentliche Website in zwei Wochen und taten danach vier Jahre lang sehr wenig daran. Diese Zurückhaltung war die eigentliche Arbeit.

KundeVertraulich
Jahr2022 — 2026
Dauer5 yrs
StackTypeScript · Next.js · React · Vercel
Hero image for humanitarian-aid-brand-siteAbb. 01 · Hero

Eine Website für eine Organisation, deren Aufgabe nicht die Website ist.

Die Klientin ist eine kleine europäische humanitäre Hilfsorganisation der Zivilgesellschaft, die nach dem Februar 2022 von einem Diaspora-Netzwerk zu einem aktiven Hilfsbetrieb wuchs. Als wir anfingen, koordinierten sie Lieferungen von Hilfsgütern, Unterkünfte für Vertriebene und Ausrüstung für Einsatzkräfte an der Front. Die Website war das Letzte, woran irgendjemand dachte — und genau das war die richtige Priorität.

Kein Web-Team. Kein Product Manager. Niemand, dessen Aufgabe es war, Tickets zu schreiben, Texte freizugeben oder ein CMS zu betreuen. Das Briefing war kein Produkt-Briefing. Es war ein Infrastruktur-Briefing: Gebt uns ein öffentliches Gesicht, das die Frage „Wer seid ihr und wie kann ich helfen?“ beantwortet, und zwingt uns danach nicht, wieder darüber nachzudenken.

Dieser Zwang prägte jede nachfolgende Entscheidung.

Zwei Wochen. Zweisprachig. Kein CMS.

Wir lieferten die erste Version der Website in etwa zwei Wochen aus, getaktet auf den operativen Schub Mitte 2022. Next.js auf Vercel, Tailwind CSS, React. Zweisprachig vom ersten Tag an — Englisch und die Muttersprache der Organisation — über das native i18n-Routing von Next.js, ohne Drittanbieter-Bibliothek.

Die Inhaltsentscheidung war bewusst: kein CMS. Kein Sanity, kein Contentful, kein Strapi. Alle Inhalte — Projektbeschreibungen, Partnerlisten, Schwerpunktbereiche, Spendenstufen — leben in typisierten TypeScript-Objekten in /data/<locale>/, versioniert zusammen mit dem Code. Einen Text zu aktualisieren ist ein Git-Commit. Es gibt kein Login, keine Editor-Oberfläche, keine Deployment-Pipeline, auf die das Team geschult werden müsste.

Wir ließen außerdem weg: Animationsbibliotheken, API-Routen, eine Laufzeitdatenbank, eine Rate-Limiting-Schicht, eine eigene Auth-Oberfläche. Nichts davon wurde benötigt. Der Spendenfluss geht extern über dedizierte Spendenschienen. Die Aufgabe der Website ist es, zu informieren und zu lenken, nicht zu transagieren.

Durchgängig statische Generierung. Der Build erzeugt HTML. Vercel liefert es aus. Das Einzige, was schiefgehen kann, ist ein fehlschlagender Build — und Builds rufen niemanden um 3 Uhr morgens auf den Pager.

F · 01Zweisprachige statische Website
Englisch und die Muttersprache der Organisation vom ersten Tag an. Natives i18n-Routing von Next.js, volle Inhaltsparität, keine Drittanbieter-i18n-Bibliothek.
F · 02Inhalt als Code
Alle Texte leben in typisierten TypeScript-Objekten in /data/<locale>/, versioniert. Kein CMS-Login, keine Editor-Oberfläche, keine Deployment-Pipeline, die erlernt werden muss.
F · 03Durchgängig statische Generierung
Jede Seite zur Build-Zeit vorgerendert. Keine API-Routen, keine Laufzeitdatenbank, keine Bereitschaftsrotation für Infrastruktur.
F · 04Zwei Next.js-Hauptversionen überquert
Die Codebasis lief von Next.js 12 über 14 zu 16 ohne Neuschreibung. Stack-Entscheidungen, die gut altern.
F · 05Dark Mode über CSS-Klasse
Zustand hält den Toggle-Status; localStorage persistiert ihn. Kein Aufblitzen beim Neuladen. Keine Drittanbieter-Theming-Bibliothek.
F · 06Null Neuschreibungen in vier Jahren
Die im ersten Sprint gezeichnete Architektur ist die Architektur, die heute in Produktion läuft.

Zwölf Monate Stille, dann ein einziger Commit.

Nach dem ersten Sprint: Stille. Von August 2022 bis Mai 2023 erhielt die Codebasis null Änderungen. Die Website hielt. Die Organisation leistete Hilfe. Das war der korrekte Zustand der Dinge.

Juni 2023: ein Commit. Analytics. Juli 2024: neun Commits. Ein kleiner Wartungssprint — Next.js-Upgrade, ein Austausch der Karussell-Bibliothek, Abhängigkeitshygiene. Nichts Strukturelles.

März–April 2026: die aktuelle Überarbeitung. Ein Design-Refresh, ein vollständiger Mobile-Durchgang, die Migration auf Tailwind v4, SEO-Verbesserungen. Die Codebasis überquerte zwei Next.js-Hauptversionen — von 12 über 14 zu 16 — ohne Neuschreibung.

240 Commits über vier Jahre. Das Schubmuster ist ehrlich: Der meiste Aufwand entstand am Anfang und dann am Ende. Die lange Mitte war die Website, die einfach funktionierte.

Das richtige Maß an Engineering für eine zivilgesellschaftliche Organisation ist das Maß, das verschwindet.

Die Website war für die Organisation kein Problem, über das sie nachdenken musste. Das ist das Ergebnis. Keine Conversion-Rate, keine Absprungrate — das Ausbleiben der Website als Reibungsquelle.

Dieselbe Codebasis, die 2022 ausgeliefert wurde, ist die Codebasis, die heute in Produktion läuft. Dasselbe Team, das sie gebaut hat, pflegt sie. Kein Migrationstrauma, kein „Wir müssen das auf einem modernen Stack neu bauen“-Gespräch, weil der Stack sorgfältig genug gewählt wurde, um ohne ständige Eingriffe modern zu bleiben. Bun ersetzte Node als Laufzeit. Biome ersetzte ESLint und Prettier. Tailwind v4 ersetzte v3. All das war additiv — keine architektonischen Schulden, die aufzulösen wären.

Vier Jahre. Zwei Next.js-Hauptversionen überquert (12 → 14 → 16). Null Neuschreibungen. 240 Commits. Ein Team.

Zitat / 04
Die Website war kein Problem, über das wir nachdenken mussten.
DirektorHumanitäre HilfsorganisationEuropa
Outcome
Initial sprint
~2 weeks
Years in production
4
Next.js majors crossed
2 (12 → 14 → 16)
Commits over four years
240
NEXTFallstudie 13SW · 13 von 10
E-commerce2026

Made-to-order-Commerce für einen Markt, der seinen eigenen Stack braucht.