Welcome to my corner of the internet. This is the first post on my new portfolio, and I wanted to use it to explain some of the technical choices I made when building this site.
Why Next.js?
Next.js gives me everything I need for a production-grade portfolio:
- Static generation for blazing-fast page loads
- App Router for a clean, file-system-based routing model
- Server Components to keep JavaScript bundle sizes minimal
- Built-in image optimization via
next/image
For a personal portfolio, these are overkill — but they're also zero extra work in Next.js, and they mean the site will be fast and well-structured from day one.
Why MDX for the Blog?
I wanted to write blog posts and updates as markdown files in the repo. MDX gives me:
- Markdown syntax for everything simple (headings, lists, code blocks)
- React components when I need custom UI inside posts
- Frontmatter via
gray-matterfor post metadata (title, date, tags) - Static generation — every post is rendered at build time, so no CMS required
The tradeoff is that posts need to be deployed with the code. For a personal blog where I'm the only author, that's fine — I just push to the repo.
The Design System
The palette is strictly monochrome: zinc-950 background, zinc-100 foreground, with various zinc grays for muted elements and borders. No color at all. The goal is to let the content speak rather than the design.
Typography is handled by Geist Sans and Geist Mono from Google Fonts, loaded via next/font to avoid layout shift.
What's Next
I plan to write more about:
- Automation patterns I've found valuable at Factoryze
- LLM evaluation methodologies from my research work
- Software architecture decisions and tradeoffs
Thanks for reading.