Structured guidance, not reactive healthcare
A bilingual medical practice site for a Zurich clinic. Sanity-driven, EN/DE, designed around the consultation funnel — quiet typography, clear pathways, no stock-photo theatre.

The brief
The clinic positions itself differently from the bulk of Swiss medical practices: structured patient pathways, longer consultations, evidence-led plans rather than reactive prescriptions. The old site read like every other clinic — stock imagery, generic service grid, no real differentiation. The new site needed to make the positioning legible inside ten seconds, in two languages, with the team able to publish without a developer in the loop.
What I built
- Editorial typography over imagery
Marine palette, restrained motion, accents on the positioning lines (“Structured guidance, not reactive healthcare”). Hero is text-led, not photo-led — patients read the difference before they see a face.
- Six service deep-dives
Each service card has its own dedicated route with the same treatment as the home — headline, body, what to expect, book a consultation. Cross-linked, single source-of-truth in Sanity.
- EN/DE bilingual throughout
next-intl4.x for routing and copy, Sanity internationalisation for the editorial content. Locale picker in the navigation, locale-prefixed URLs, hreflang in the head. Editors write each language separately — no machine translation.- ISR-revalidated content
revalidate=60on the home and service pages. An editor saves a copy change in Sanity, the next request after 60 seconds rebuilds with fresh data — no deploy, no manual cache flush. Practitioner profiles, FAQs and consultation details all flow the same way.
The outcome
Site delivered in under two weeks. Content team self-sufficient from launch — Sanity Studio in their workflow, no tickets to me for copy edits. Hero positioning rewritten three times without a code change. Lighthouse mobile in the high 90s, Core Web Vitals all green. Owner's favourite line: “The site finally sounds like us.”
Stack
Next.js 16 App Router · Sanity CMS · next-intl 4.x for EN/DE routing · ISR revalidate=60 for editorial content · Resend for the contact form · Tailwind v4 · Vercel auto-deploy on push
Want a sitethat sounds like you?