steven s. song
auto_awesomeClaudeWeb App

steven s. song

chat_bubble1
Try it Livearrow_outward

A curated photography portfolio showcasing street, portrait, landscape, and architecture work across 16 cities and 6 countries. Photos are filterable by location, year, and subject, with an interactive world map visualizing where each image was taken. Built entirely with Claude Code using Next.js, Tailwind CSS, and Cloudinary.

How I built this

I had hundreds of photos from a decade of travel sitting in folders doing nothing — semesters in London and Shanghai, a spring break backpacking through Italy and Spain, years of shooting street photography in New York. I wanted a portfolio that felt like a gallery, not a template. Something minimal where the photos could breathe. I built the whole site with Claude Code in a series of conversations. I'd describe what I wanted — a masonry grid, a lightbox with keyboard nav, filtering by location — and iterate on the output live. The most fun piece was the location map: instead of pulling in Google Maps, Claude built a custom SVG visualization with dots sized by photo count across 16 cities. It's not geographically precise, but it tells the story at a glance. The hardest part wasn't the code — it was figuring out where each photo was actually taken. Most had no location metadata, so I dug through years of Gmail flight confirmations and hotel bookings to reconstruct my travel history. Then I cross-referenced camera file numbers to place each shot: IMG_3560 through IMG_9568 were my London semester camera, IMG_0270 through IMG_2821 were Shanghai. Claude even caught two photos tagged as "Shanghai" that had European IMG numbers — one had a bag reading "Konica Minolta Business Solutions Spain" in the frame, confirming it was from Barcelona. The stack is deliberately simple: Next.js, Tailwind, Cloudinary, deployed on Vercel. No UI libraries, no external map dependencies. What I learned is that the hard part of a portfolio isn't engineering — it's curation. Claude handled the code; I had to handle the taste.

Discussion

1

No comments yet. Be the first!

Sign in to leave a comment.