About this website
This site is a static portfolio. I built it to load fast, work with assistive technology, and stay out of the way of the work it describes.
Lighthouse
Mobile scores from Google Lighthouse, generated with lighthouse-badges.
Scores last updated 26 June 2026. Run pnpm lighthouse:badges to refresh.
Quality checks
Independent checks you can run yourself:
- WCAG 2.0 AAAChecked with AChecker for WCAG 2.0 Level AAA conformance.(opens in new tab)
- HTML validationChecked with the Nu HTML Checker. CSS inside <style> tags may show expected warnings; see validation notes.(opens in new tab)
- CSS validationStyles checked with the W3C CSS Validator.(opens in new tab)
Stack
Astro generates static HTML. Tailwind CSS handles layout and typography. The site is hosted on Cloudflare Pages.
Inter is self-hosted. No third-party font requests run when pages load.
Accessibility
Pages use semantic landmarks, skip links, visible focus styles, and descriptive link text. Dutch and English versions are linked with hreflang.
The footer includes an AChecker badge for ongoing WCAG 2.0 Level AAA checks.
Performance
Assets are pre-rendered at build time. Critical CSS is inlined. Images and fonts use modern formats where it helps.
Lighthouse badges are generated with lighthouse-badges and refreshed with pnpm lighthouse:badges.
Validation notes
The Nu HTML Checker scans embedded CSS in <style> tags as well as markup. A clean document tree can still show CSS errors when the checker’s rule set lags behind what browsers ship.
Tailwind CSS v4 is the main source on this site. It emits @property rules so custom properties animate correctly. Browsers that support Tailwind’s targets apply these rules; the W3C tools do not list @property yet.
The checker also flags custom properties in transition-property (for example --tw-gradient-from) and margin-trim inside @supports queries. Both are valid in current CSS modules and work in supporting browsers.
After each build, a script strips some of these patterns from production HTML so the standalone W3C CSS Validator stays clean. The Nu checker may still list what remains. Those messages describe validator coverage, not broken pages.