← All projectsProblem statement Solution Architecture Key features Challenges Lessons learned
Personal Portfolio & Blog Platform
A fast, multi-page personal site with a data-driven blog and command palette.
I needed a single home for my projects, writing, and learning journey that felt personal and premium rather than a cookie-cutter template, and that I could extend for years without friction.
A multi-page React SPA with a design-system foundation, animated space backdrop, theme switching, and a fully data-driven content layer so new projects and posts are just objects in a file.
Vite + React Router with a persistent layout shell (nav, footer, cursor, starfield). Content lives in plain JS data modules; pages render from that data. Route-level code is kept lean and reveal animations run via IntersectionObserver.
- Multi-page routing with animated transitions
- System-aware dark/light theming
- Command palette (Ctrl/⌘ + K) for instant navigation
- Data-driven projects & blog with search, tags and categories
- Reading progress + table of contents on articles
- Accessible, responsive, reduced-motion friendly
Getting smooth momentum scroll, per-route reveal animations, and a custom cursor to coexist without jank, which I solved with event delegation and rAF-batched work.
A tiny, well-structured data layer beats a CMS for a personal site. Investing in a design system up front made every new page trivial.