Story: I rebuilt my entire portfolio from scratch because the old static site couldn’t keep up with how often I publish new work. The new version lets me drop in photos, art, music, bio posts, and even apparel drops from one place, with everything streaming straight to a PostgreSQL database. A glassy Next.js frontend reads from that single source of truth, while a FastAPI backend handles data validation, album tagging, and AWS S3 uploads. Firebase-authenticated admin tools make sure only my account can publish or delete content. The result is a cohesive platform that feels like a creative hub instead of a static gallery.

Webring Vision: Long term, I’m turning this into a template for a community “webring” inspired by the University of Waterloo site. The idea is to let other creators spin up their own versions, link them together, and browse each other’s pages to see what everyone’s building. Think of it as a curated neighborhood of creative portals—owned by individuals, connected by design. This project is the first node in that network, a proof of concept for how the shared experience might work.

Key Highlights:

Dynamic feed pulls the newest 50 posts and renders them with responsive 2D packing layouts.

CreatePost modal handles category-specific flows, including multi-image apparel drops with automatic thumbnail compression.

Image modal showcases rich content, full markdown support, price display, and a glass-effect “Buy” CTA as a placeholder for future ecommerce.

Album filters, tag display, and delete-on-modal offer quick editorial control without leaving the page.

Deployed with Next.js 16 on Vercel, FastAPI + PostgreSQL on Railway, media on AWS S3, Firebase Auth for admin gating, and Cloudflare for DNS.

Built With

Share this project:

Updates