This repository powers my personal website, including the homepage, about page, blog, links page, project pages, and supporting API routes.
I moved the site toward a local-content workflow so posts and projects can live in the repository instead of depending on a CMS. That keeps publishing simple and makes the code and content evolve together.
I wanted one place that could function as a portfolio, a blog, a project archive, and a lightweight publishing system. The site is also where I test interaction patterns, content structures, and smaller product ideas before they move into separate repositories.
- An MDX content pipeline for blog posts and project pages.
- Shared UI components for navigation, page headers, reactions, search, stats, and reading views.
- Portfolio and writing surfaces that stay visually consistent while supporting different content types.
- Next.js App Router for routing, layouts, and static generation.
- Local file-based loading for blog posts and project content.
- Shared design primitives used across the homepage, blog, portfolio, and utility pages.
- Supabase-backed pieces for views, reactions, and visitor-related data.
The important part is not any single page. It is the system behind the pages: content loading, reusable components, discoverability, and making the site easy to keep updated as my work changes.
This is an actively maintained project. It is both a portfolio and the public home for everything else listed here.