A portfolio that’s just a collection of links isn’t useful to anyone. I wanted one where each project has its own page with context - why I built it, what I learnt, what I’d do differently. So I built this site from scratch and write the project pages in MDX.

Features
- Projects and blog posts authored in MDX, rendered at build time
- Dynamically generated OG images for each project
- SEO-optimised with proper metadata
- Dark mode
- PostHog analytics to see which projects people actually read
- RRWeb session recording to understand how people navigate
What I learnt
- How Astro’s content collections and static generation work
- SEO - canonical URLs, structured data, OG metadata
- DNS setup and managing custom domains
- How to use analytics to actually improve a site rather than just collect numbers
Built with
- Astro
- tailwindcss
- PostHog - analytics
- Deployed on Vercel