Why I Built This Portfolio
I wanted a portfolio that feels fast, simple, and easy to maintain. The goal was to keep the content workflow lightweight so writing new posts does not require a CMS.
Stack Decisions
Next.js 15App RouterTypeScriptTailwind CSSMarkdown
- Next.js 15 with the App Router
- TypeScript for predictable refactoring
- Tailwind for rapid UI iteration
- File-based Markdown posts in a root
blogs/directory
Markdown-First Blogging
Every post is a single .md file. I use frontmatter for post metadata like title, date, and tags. That lets the /blog page list posts automatically while /blog/[blogid] renders the full article.
ts
export function () {
().( ({
: post.,
}))
}
