This repo is my portfolio: part showcase, part playground. It's where the projects I've actually shipped live, along with the certificates, the experience timeline, and whatever I'm currently obsessed with.
It's also a fun little front-end project in its own right. If you're here to see what I've built, keep reading. If you're here to run the site locally, jump to the dev docs.
- About — the short version of me: what I work on, what I care about, and what I'm learning next.
- Projects — thirteen things I've designed and built, from full-stack social platforms to distributed storage systems, each with its own write-up.
- Experience — where I've worked, what I owned, and what actually shipped.
- Certificates — proof I keep learning things, with the PDFs to back it up.
- Contact — a real form, not a
mailto:. It goes somewhere, I promise.
And two hidden pages
There are two pages on the site that aren't linked from the nav. One is a snapshot of what I'm up to right now; the other is a trail of links out into the wider web.
Can you find them? 👀
Two parts of the site I'm quietly proud of:
An art gallery. The home page keeps a small collection of paintings — the Creation of Adam, Starry Night, The Great Wave, The Last Supper, The Kiss, Girl with a Pearl Earring — and shuffles through them over time, so the page looks a little different depending on when you visit.
A music player. Down at the bottom of the home page there's a working turntable — "The Listening Room" — with a rack of records, a tonearm that lifts and drops, and actual audio. Pick a pressing, hit play, stay a while.
Eleventy 3 with Nunjucks for the pages, Sass for the styling, Rollup for the JS, and Cloudflare Pages for hosting — plus a Pages Function for the contact form because a static site still deserves a working inbox.
Short version, if you just want to see it:
npm install
npm start # http://localhost:8080That's it. Node 20+ and you're off.
For the full picture — build pipeline, project structure, adding pages and projects, deployment, the dependency patches, and the contact form setup — start with docs/development.md, or browse all the docs.