
Kunde
My Office Asia — Brokerage für Flex-Workspaces in Hongkong, arbeitet mit Operatoren auf WeWork-/Regus-/IWG-/JustCo-Niveau sowie unabhängigen Boutique-Anbietern.
Branche
PropTech · Commercial Real Estate · Brokerage
Scope
Discovery → Design-System → Entwicklung → Production-Readiness → Handover an den Kunden.
Der Kunde lief auf einer veralteten Seite, die wie ein Katalog-Listing wirkte und die eigentliche Leistung nicht vermittelte — persönlicher Advisor, Antwort innerhalb von zwei Stunden, für den Mieter kostenlos.


Aktiv ist nur ein Markt (HK), aber die Architektur trägt mehrere Märkte und Marken. Content-Daten, Brand-Tokens und SEO-Metadaten sind vom Komponenten-Layer isoliert — Singapur oder Taipeh später hinzuzunehmen, erzwingt keinen UI-Rewrite. Damit ist das Fundament für regionales Wachstum gelegt.
Harte Schichtentrennung ohne aufsteigende Abhängigkeiten: domains/ (Typen und Verträge) → server/ (Business-Logik und DB-Adapter) → components/ (UI) → app/ (nur Route-Komposition). Routes wissen nichts von Supabase-Tabellen — alles läuft über eine Provider-Boundary. Eine Migration von Supabase auf direktes Postgres oder PlanetScale wäre ohne UI-Eingriff möglich.
App Router mit Server Components, wo immer möglich. Von etwa 400 Komponenten sind nur 83 Client-Komponenten — jede begründet durch State oder Event-Handler. Das hält das JS-Bundle klein und verbessert Time-to-Interactive.
Ohne externe Abhängigkeit zu reCAPTCHA oder Turnstile: Honeypot-Feld, Form-Age-Check (sofort-Replays werden abgewiesen), Per-IP-Rate-Limit, serverseitige Zod-Validierung. Spam bleibt draußen, ohne den Nutzer zu belasten.
Nach Design-Freigabe folgte ein neunstufiger CSS-Refactor: jede Farb-, Font-Größen-, Radius-, Shadow-, Spacing- und Motion-Werte wurde zum semantischen Token. Ergebnis: null hardcodierte font-size-Werte über 144 CSS-Module. Globale Änderungen — Akzentfarbe, Spacing-Skala — sind ein einziger Edit in globals.css.
Statt fester Breakpoints für horizontale Paddings nutzen wir ein einziges clamp(24px, 5.55vw, 80px). Inhalte skalieren weich von Mobile zu Desktop und werden auf Ultra-Wide-Screens in den editorialen 1600px-Bereich gecappt (Apple / Stripe / Linear), ohne auf 4K auseinanderzulaufen.

Vor dem Handover haben wir einen durchgehenden Audit gefahren.
Production-Build: ~5 Sekunden Compile, 71 statisch generierte Seiten, 0 TypeScript-Errors, 0 console.log in Production.

| Frontend | Next.js 16 (App Router, React 19, Turbopack), TypeScript strict, CSS Modules |
|---|---|
| Backend | Supabase (PostgreSQL), Nodemailer (SMTP), Zod, Anthropic API (Admin-Assistant) |
| Infra | Vercel-kompatibel, Edge Runtime, sharp für Image Processing |
| Quality | ESLint, Prettier, Vitest, Playwright e2e, lint-staged, husky |
| Design | Vollständig kustomisiertes DS, ~150 semantische Tokens |
Wenn du auf einer Listing-Seite sitzt, die nicht konvertiert, oder eine regionale Plattform mit echtem Admin und einem belastbaren Design-System brauchst — wir bauen sie genauso.






