Ga naar hoofdinhoud
Neal Gysemans
Alle projecten
2026Gebouwd — interne infrastructuur & nog niet publiek

Tweetalige coaching- & connectiesite

Een tweetalige (NL/EN) redactionele site met een PhysiqueAtlas-showcase voor een Belgische coach in kracht, voeding en mentale prestaties — gebouwd om via configuratie, zonder tweede branch, om te schakelen van een niet-commercieel connectiekaartje naar een WER-conforme eenmanszaak.

Rol
Solo-designer & -ontwikkelaar — tweetalige architectuur, compliance-guardrails, PhysiqueAtlas-showcase
Stack
  • Astro 7
  • Tailwind CSS v4
  • Zod
  • Cloudflare Workers
  • WCAG 2.2 AA
Architectuurdiagram: NL- en EN-teksten in YAML en Markdown gaan door een Zod-copy-guard, worden gebouwd met Astro 7 en draaien op Cloudflare Workers. Daaronder drie beslissingen: een toggle in YAML van fase 1 naar fase 2, een buildverbod op beschermde Belgische titels, en mobiele PhysiqueAtlas-schermen die in HTML en CSS nagebouwd zijn, zonder framework-JS.

Status

Nog niet publiek: gebouwd en geverifieerd, wacht op het laatste materiaal van de klant en de domeinoverschakeling.

Beslissingen

Een toggle in twee fasen in YAML, geen twee branches

De site schakelt van fase 1 (Personal) naar fase 2 (Eenmanszaak) in YAML — de siteMode-vlag plus legalForm en de KBO-gegevens — in plaats van een tweede branch die je in leven houdt zolang de KBO-inschrijving loopt.

Een copy-guard op beschermde titels

Een recursieve Zod-superRefine-regex weigert bij de build beschermde Belgische titels (“psycholoog”, “diëtist”) en termen die niet bij het merk passen (“bodybuilding”).

Een PhysiqueAtlas-showcase zonder JavaScript

Vier mobiele PhysiqueAtlas-schermen, elk met de tabbalk met 5 tabs uit de app, zijn nagebouwd in pure HTML en CSS in plaats van een React-island mee te sturen.

Wat het kostte

  • Eén branch: beide fasen moeten continu door het schema gevalideerd en getest worden, zodat fase 2 nooit veroudert.
  • Copy-guard: een tekstwijziging laat de build meteen falen als er een verboden term in sluipt.
  • Showcase zonder JS: handgebouwde schermen die je zelf in sync moet houden met de app, in ruil voor 0 KB client-framework-JS.