Hello, world.
This is the first post on this site, so it seems fair to explain what it is.
I wanted a single place to point people at — something that says who I am, shows what I've built, and gives me a low-friction spot to write. Social profiles scatter that across five platforms, each with someone else's layout and someone else's ads. A personal site keeps it in one place, under my control, for free.
How it's built
The whole thing is static: Next.js with the App Router, Tailwind for styling, and MDX files like this one for posts. There's no database and no backend — projects and the reading list are JSON files in the repo, and publishing a post means committing a Markdown file and pushing.
export function getPosts(): PostMeta[] {
return fs
.readdirSync(blogDir)
.filter((file) => file.endsWith(".mdx"))
.map(parseFrontmatter)
.sort((a, b) => b.date.localeCompare(a.date));
}
Everything is pre-rendered at build time and served from a CDN, which means the hosting bill is exactly zero dollars.
What I'll write about
Mostly software and AI — things I build, things I read, and the occasional opinion I can't keep to myself. If any of that sounds interesting, check back, or just look at the projects page.