Active
Personal Site
This very website — a hand-crafted digital garden built with Next.js, MDX, and Tailwind CSS.
Overview
A high-performance personal website serving as a digital garden for technical writing, project showcases, and professional presence. Every detail — from the animated tricolor logo to the scroll-driven timeline — is intentionally crafted.
Problem
Most personal sites fall into two camps: generic templates that look like everyone else's, or over-engineered experiments that sacrifice content for flash. I wanted something that was:
- Visually distinctive — a site that could credibly compete on Awwwards
- Content-first — writing a new article should mean creating one
.mdxfile - Performant — 95+ Lighthouse scores across the board
- Maintainable — clean enough that I can extend it without re-learning the codebase
Solution
Built from scratch with Next.js App Router and a carefully chosen set of tools:
- Design System — Intel-inspired deep navy palette with multi-accent color system, implemented via CSS custom properties and Tailwind v4.
- Content Pipeline — MDX files with frontmatter, compiled at build time with KaTeX for math, Shiki for syntax highlighting, and custom components for callouts, figures, and equations.
- Animations — Framer Motion for scroll-triggered reveals, layout animations, and micro-interactions. All motion respects
prefers-reduced-motion. - Search — Flexsearch index generated at build time, loaded on-demand when the search dialog opens.
Key Learnings
- Design tokens first. Defining the full color palette, type scale, and spacing system before writing any component code saved enormous time.
- RSC changes everything. Server Components let you keep heavy MDX compilation server-side while keeping the interactive shell lightweight.
- Ship incrementally. Building page-by-page with a working deploy at every step is far better than trying to ship everything at once.
Tech Stack
- Next.js 16, React 19, TypeScript
- Tailwind CSS v4, CSS custom properties
- Framer Motion
- MDX (next-mdx-remote), KaTeX, Shiki
- Flexsearch
- Vercel (deployment)
Was this helpful?