The problem
I wanted a portfolio that puts the photographs first and is simple for me to maintain. It also needed room for visual mood boards: the references and ideas behind the finished work.
What I learned
Image quality, privacy, and free hosting limits affect each other. Smaller gallery copies make browsing faster, while keeping full-size files separate preserves detail. Removing location metadata protects information that visitors do not need.
Decisions and tradeoffs
Every photograph keeps its original proportions. The layout adapts to a mix of shapes instead of forcing the work into identical frames.
One private owner workspace handles uploads, descriptions, tags, and themes. Visitors can explore freely; editing stays behind sign-in. Git checkpoints and private content backups make changes reversible.
Results and next steps
The site now supports collections, shared tag filters, keyboard and touch photo viewing, and editable pages. The owner tools preserve unfinished drafts and offer Undo for supported photo changes. Next I want to develop the mood boards and use page-view data and visitor feedback to guide improvements.
Technical details
- Interface: Next.js, React, and TypeScript, built with help from Codex.
- Hosting and data: Vercel Hobby, private Cloudflare R2 photos, and Neon PostgreSQL.
- Image handling: unchanged full-size sources, separate gallery copies, and location metadata removed before storage.
- Checks: Git checkpoints, automated browser tests, and a private rollback snapshot.