Hello, world: how this site is built
Welcome to my new home on the web. This is where I'll share the apps, open-source projects and products I work on, plus notes on what I learn while building them.
For the first post, here's a short tour of how the site itself is put together.
The stack
The site is a static export of a Next.js app. Every page is rendered to plain HTML at build time, so there's no server to run and pages load fast from a CDN.
| Part | Choice |
|---|---|
| Framework | Next.js (App Router, static export) |
| UI | Tailwind CSS and shadcn/ui |
| Animations | Motion and CSS |
| Blog posts | MDX files in the repo |
| Hosting | Amazon S3 and CloudFront |
| DNS | Cloudflare |
Writing posts
Each post is a single .mdx file. The metadata sits at the top as a plain export:
export const metadata = {
title: "My post",
description: "One line about the post.",
date: "2026-10-09",
tags: ["Notes"],
};Push the file, and the build turns it into a page, adds it to the sitemap and the RSS feed, and creates a social preview image for it.
Privacy first
Google Analytics only loads after you say yes in the cookie banner, and ads are only personalised if you allow it. You can change your choice at any time from the Cookie settings link in the footer. The privacy policy has the details.
What's next
Native iOS and Android apps for the site are on the way. More on those soon.
Thanks for reading!