How I rebuilt my portfolio with MDX and AI code assistants
How I rebuilt my portfolio with MDX and AI code assistants
My portfolio site had a problem: it was 90% fake. Six project cards referencing tools that didn't exist. A generic bio. A tools page I copied from somewhere. The infrastructure was real — Next.js, AWS CDK, CloudFront, GitHub Actions — but the content was fiction.
What I actually built
I have real projects. A tool that turns codebases into documentary audiobooks. A hybrid search engine for legal documents. Client sites that are live and running. None of them were on my portfolio.
So I tore it down and rebuilt it.
The approach
MDX content collections. Each project gets its own .mdx file with typed frontmatter (title, tags, status, links) and free-form content below. The site reads these files at build time and generates static pages. No CMS, no database, no API.
content/
projects/
repo-story.mdx
finsetdesign.mdx
mbox-parser.mdx
...
Adding a new project means writing a markdown file. The build handles the rest.
What worked
The MDX + Next.js static export pipeline is clean. next-mdx-remote compiles MDX at build time, gray-matter parses frontmatter for index pages, and output: "export" generates plain HTML files. CloudFront serves them. Zero runtime.
Tag-based filtering on the projects page works client-side with a single useState hook. No server needed.
What I'd do differently
I'd start with the content, not the infrastructure. I spent time on MDX utility functions, test frameworks, and build pipelines before writing the actual project descriptions. The content is what makes the site worth visiting. The infrastructure is interchangeable.