August 8, 2026 · 2 min read
How this blog is built
A quick tour of the stack behind aryantripathi.dev, and why it's deliberately boring.
The most interesting decision about this blog's stack is that there isn't much of one. Here's the whole thing.
The stack
- Next.js, App Router, static export. Every page is plain HTML at build time — there's no server to keep running, patch, or pay for. A blog is read far more often than it's written to, so there's no reason to render it on every request.
- MDX files as the database. Each post is a
.mdxfile with YAML frontmatter (title, date, description, tags) and Markdown underneath, sitting in the repo next to the code. Writing a post is writing a file; publishing it is a git push. - Tailwind, sharing tokens with arytripathi.com. Same sand/ink/ember palette, same Inter + Playfair Display pairing. The two sites are built by different Next.js apps, but the design tokens are copied over deliberately so they read as one hand, not two properties that happen to share a name.
- Azure Static Web Apps for hosting. The build output is static files — no container, no server to keep patched, and free at this traffic level. That's a genuinely different infrastructure decision from the main site, which does run backend containers for the contact form and booking flow. A blog doesn't need any of that.
What it doesn't have, on purpose
No CMS, no database, no admin panel, no comments system. Every one of those is a maintenance burden that scales with how long the site stays up, not with how much I actually write. A markdown file in a git repo will still open correctly in ten years. I can't promise that about a hosted CMS's export format.
The one indulgence
Per-post Open Graph images are generated at build time from each post's title, so a link shared on LinkedIn looks intentional instead of like a broken preview. That's the extent of the cleverness here — everything else is as plain as it looks.