I've shipped a lot of little side projects over the years. Some scratch an itch, some solve a problem for friends, some are just experiments that turned into something useful. But they've always lived in a weird limbo: too small to be "portfolio pieces", too finished to stay hidden on localhost.
So I built Builds. A proper home for all the tiny wins.
The problem
My portfolio has two big case studies. An AI tool for career and wellbeing guidance that I rebuilt from my undergrad project, and another project I'm hoping to rebuild soon. They're solid work, but they only tell part of the story.
The truth? I've been waiting around to finish "proper" full-scale projects before updating my portfolio, but in the meantime I've been shipping quick wins constantly. Both at work and as side projects. I used to showcase Figma designs from my UX certification (career shift, three years ago, job hunting mode), but those feel outdated now so I hid them.
The result: my portfolio looked silent, even though I've been anything but.
I wanted a way to show that I'm actively building without waiting for the next massive project to be "portfolio-ready". A place for the small, fast, focused builds that solve real problems without needing six months and a roadmap.
Basically: proof that I haven't been quiet. Just busy shipping the little things.
What I built
A mini-projects showcase with two sides:
Public side:
- A grid of published "bites" with cards showing title, description, tech stack, and thumbnail
- Individual detail pages with full Markdown content, GitHub/demo links, and clean typography
- Fully responsive (mobile-first, because I do most of my browsing on my phone)
Admin side:
- Login with email/password (Supabase Auth)
- Dashboard to manage all bites (published + drafts)
- Create/edit forms with Markdown editor
- Auto-generated slugs from titles
- Publish/unpublish toggle
Everything's protected with middleware so the admin routes need authentication, and the public pages only show published content. Clean separation, no leaks.
How it works (the interesting bits)
I built this with Next.js 15 (App Router), TypeScript, Tailwind CSS, and Supabase for the backend.
The data lives in a Supabase table called build_bites with Row Level Security policies so anyone can read published posts, but only I can create/edit/delete. The Markdown content gets parsed with marked and sanitized with DOMPurify to prevent XSS nastiness, then rendered with Tailwind's prose classes for beautiful typography.
I also added middleware that checks authentication on all /admin/* routes and redirects to login if you're not signed in. Keeps things locked down without me having to repeat auth checks everywhere.
Tech stack is stored as an array in Postgres, which means I can filter or search by tech later if I want. Thumbnails go in Supabase Storage (or external URLs if I'm lazy).
Why this matters to me
This is exactly the kind of meta thing I love: building a tool to showcase the tools I build. It's also forcing me to write about what I make, which I've always been terrible at. If I have a nice place to share these stories, maybe I'll actually do it more often.
Plus, it removes friction. Before this, I'd finish a side project and think "I should add this to my portfolio" and then... never do it because it didn't feel significant enough next to the big case studies. Now I just login, write some Markdown, hit publish. Done.
No more waiting for the "perfect" project. No more looking silent when I've actually been shipping constantly.
What's next
For now, this does exactly what I need: a low-friction way to share small wins. But I've got a few ideas brewing:
- Drag-and-drop image uploads in the admin panel
- Markdown preview while editing
- Categories or tags (maybe "experiments", "tools", "helpers")
- A search bar (once I've got enough content)
- View counts or a simple like system
- RSS feed for the three people who still use RSS readers
But honestly? The MVP is perfect. It's fast, it works, and it's already doing its job: helping me share the little things without overthinking it.
If you're reading this, welcome to the first post about the thing you're currently using. Very inception. More bites coming soon 🍪