About
I'm a frontend developer from the Netherlands with a focus on accessibility and creative CSS. I care about the details that most people don't notice — logical reading order for screen readers, colour-blind friendly palettes, CSS that uses the platform rather than fighting it.
During my minor in Web Design & Development I built everything from a Node.js archive with second-degree connection surfacing to a pure-CSS solar system that uses trigonometric functions and @property for true circular orbits. I'm looking for a team that takes the web seriously.

Skills
HTML · CSS · JavaScript · TypeScript · React · Next.js · Tailwind CSS
Node.js · LiquidJS
Git · Figma
Projects
- 01
College Portfolio
React · Next.jsBuilt during a minor in Web Design & Development, this portfolio site collects the projects and blogs I produced throughout the course. The challenge was showcasing diverse work — from accessibility-focused exercises to creative experiments — without a unified visual design making them look unrelated. I decided to let each project breathe in its own card rather than force a cohesive wrapper, which keeps the focus on the work itself. The result is a working reference point for my growth through the minor.
- 02
Framez — Framed Archive
Node.js · LiquidJS · TinyHTTPFramez is a server-rendered archive for an Amsterdam art and culture platform, built to surface second-degree connections: from a person to the organisations they belong to, and from those organisations to their events. The problem was that existing navigation hid these relationships. I used Node.js, LiquidJS, and TinyHTTP with a deliberate accessibility-first approach — logical DOM reading order for screen readers, a colour-blind friendly palette with an on-screen legend, and an image toggle for low-bandwidth users. A global search ties the entire archive together.
- 03
NS Inheritance Tax Form
HTML · CSS · JavaScriptA progressive-enhancement inheritance tax form styled to match the Dutch Railways (NS) visual identity — NS Sans typeface, NS root CSS variables, NS button styles. The challenge was building a form that works without JavaScript but improves significantly with it: fields are visible by default and hidden only when the user selects "no", never the other way around. CSS :user-invalid and :user-valid handle validation feedback, and Local Storage persists progress across sessions. The result is a fully functional, accessible form that feels native to NS even at the CSS level.
- 04
CSS Solar System Control Panel
HTML · CSS · JavaScriptAn interactive solar system built with pure HTML, CSS, and a single line of JavaScript. The technical challenge was achieving true circular orbits — not elliptical approximations — which required using CSS trigonometric functions (cos and sin) inside @keyframes. CSS custom properties via @property drive all planet speeds, sizes, and distances, making the whole system tunable from one place. Container queries handle responsive scaling, and light-dark() provides automatic dark mode without a toggle. This project exists to prove how far CSS has come as a layout and animation engine.
- 05
Women in Tech Hackathon Showcase
HTML · CSS · JavaScriptBuilt in 24 hours for a Women in Tech event, this showcase experiments with CSS techniques that are rarely used together in a production context. The constraint — one day, one event, one goal — forced rapid decisions about what experimental CSS is worth reaching for under pressure. The result is a tight demonstration that creative CSS can be both fast to build and visually distinctive.
- 06
The Big Football Quiz
Node.js · TinyHTTP · LiquidJSA server-side rendered football quiz covering five major European leagues. The interesting part is the question generation: GPT produces questions from live API-Football standings data, meaning the quiz content updates alongside the real season. Built with Node.js, TinyHTTP, and LiquidJS, with a persistent leaderboard via node-persist. The challenge was making dynamic, LLM-generated content feel like a real quiz rather than a chatbot output — question phrasing and difficulty needed to be consistent regardless of which data came back from the API.