
Client
My Office Asia — flex-office brokerage in Hong Kong working with major flexible workspace operators and independent boutique providers across Hong Kong.
Industry
PropTech · commercial real estate · brokerage
Scope
Discovery → design system → development → production-readiness → client handover.
The client was running on a legacy site that read as a directory listing and did not communicate the actual service: a personal advisor model, fast response times and no direct advisory fee for tenants.


Only Hong Kong is live today, but the architecture is prepared for additional markets and brands. Market content, brand tokens and SEO metadata are separated from the component layer, so new locations can be added without rebuilding the UI from scratch.
Hard stratification with no upward dependencies: domains/ (types and contracts) → server/ (business logic and DB adapters) → components/ (UI) → app/ (route composition only). Routes don't know about Supabase tables — everything goes through a provider boundary. The provider boundary keeps the UI independent from the database layer, so future backend changes would not require rewriting the public interface.
App Router with Server Components wherever possible. Out of roughly 400 components only 83 are client components — each one justified by state or event handlers. This keeps the JS bundle small and improves time to interactive.
No external reCAPTCHA or Turnstile dependency: honeypot field, form-age check (instant replays rejected), per-IP rate limit, server-side Zod validation. Spam stays out without burdening the user.
After design sign-off we ran a nine-step CSS refactor: every colour, font size, radius, shadow, spacing and motion value became a semantic token. Any global change — accent colour, spacing scale — is a single edit in globals.css.
Instead of relying on fixed breakpoint jumps, the layout uses fluid spacing and content caps so pages scale smoothly from mobile screens to ultra-wide displays.

Before handover we ran an end-to-end audit-friendly review across security, SEO, accessibility and operations.
Production build: 71 statically generated pages, 0 TypeScript errors and a clean strict type-check on handover.

| Frontend | Next.js App Router, React, TypeScript strict, CSS Modules |
|---|---|
| Backend | Supabase (PostgreSQL), Nodemailer (SMTP), Zod, Anthropic API (admin assistant) |
| Infra | Vercel-compatible, Edge runtime, sharp for image processing |
| Quality | ESLint, Prettier, Vitest, Playwright e2e, lint-staged, husky |
| Design | Fully custom DS, ~150 semantic tokens |
If your current site is only a list of pages, listings or properties — and your team needs a scalable catalogue, admin CMS, SEO architecture and production handover — we can help turn it into a platform your business can actually run.






