This site. Built to make publishing as low-friction as writing a markdown file in a folder. No CMS, no database, no admin panel. Just .mdx files in Git, deployed automatically.
Stack
- Next.js 16 (App Router) for routing and static generation
- TypeScript everywhere (frontmatter, components, content readers)
- Tailwind for styling, with CSS variables driving light/dark themes
- MDX for articles, so React components can live inside Markdown
- Shiki for syntax highlighting (dual-theme)
- Vercel for hosting and analytics
Workflow
Written in VS Code. Repo on GitHub (private). Every push to main triggers an automatic deploy on Vercel. Live in ~30 seconds.
To publish a new article: create content/articles/note.mdx, write frontmatter + body, commit, push. That's it.
---
title: Notes on Risk
date: 2026-04-29
category: Notes
status: Published
tags: [Risk]
---Drafts are filtered out automatically in production but visible in dev.
What's distinctive
The site is small and deliberately limits itself:
- No newsletter signup. RSS exists.
- No comments. Write your own piece and link mine.
- No tracking beyond pageviews. Vercel analytics, no cookies, no banner.
- No CMS. Files in a folder, version-controlled.
The only non-functional element is the ambient starfield behind everything. Drifting stars plus a shooting star every few seconds. It exists because the home felt too quiet without something moving slowly in the background.
This site will be permanently under construction, and I like it that way. I'll keep updating it as I go, pushing new styles, trying out new features, breaking things occasionally, and adding new articles whenever I have something worth saying. The version you're reading today probably won't be the version you see next time. That's the fun of it.