Why I built it
I wanted one place for my CV, my projects and my writing. It also doubles as a place to run the same hosting setup I recommend to clients.
How it started
The first version went up in August 2024. It was a small React app with a CV, a portfolio page and, a couple of weeks later, a blog. The projects on this page started as additions to it.
The 2026 rebuild
In August 2026 I rebuilt it from scratch. It moved to Vite with a new design, and articles became plain markdown files. Adding an article now means dropping one file into a folder, and the page, the listing and the links all appear on their own. Around the same time I added the Library, a shelf of books I'm reading with notes, texts and audio.
I also wanted the site to show up properly in Google and in AI tools. A single page app normally hands search engines an empty page, so I added a build step that renders every page to static HTML ahead of time. Each page gets its own title, description and structured data, and the build also writes a sitemap and an llms.txt file for AI tools to read.
How it's hosted
There is no server. Every push to main runs a GitHub Actions workflow that builds the site, syncs it to an S3 bucket and clears the CloudFront cache. There is nothing to patch and nothing to keep running.