← All work

Web app · 2026

OP Photography

A complete portfolio and client-gallery platform for a working wedding photographer: public site, drag-and-drop admin, and passcode-protected proofing galleries with downloads and photo selection.

Try it, live

This isn’t a mock-up. It’s the real application, running on this server with its own database. The real client website, live. Client galleries stay private to her customers.

Open the live demo →

A working photographer needs more than a website. She needs somewhere to publish her portfolio, a way to update it without touching code, and a private place to hand each couple their photographs. This platform is all three, running as one small Node process with one database file.

The public site

Fast, image-led pages with the search work done properly: structured data for the business and every gallery, an image sitemap so individual photographs can surface in Google Images, blur-up placeholders and no layout shift. Reviews are moderated, so nothing a stranger submits appears until she approves it.

The admin

She uploads photographs by dragging them into the browser. Each one is converted to WebP at several sizes, stripped of camera metadata including the GPS coordinates that would otherwise publish a venue's location, and given a blur placeholder. Galleries nest into collections, reorder by dragging, and publish with one click.

Client galleries

Each wedding becomes a private, passcode-protected gallery. Every photograph is numbered, so the couple and the photographer can both say "number 47" and mean the same frame. Couples tick their favourites and either download exactly those as a ZIP, with the numbering kept in the filenames, or send the selection back, where it lands in her admin with thumbnails and a note. Someone with the link but no passcode gets nothing: not the page, not a file, not the ZIP.

The system is covered by more than 140 automated end-to-end checks, from CSRF rejection to metadata stripping to "a stranger with the link gets nothing". The public side is live at opphotography.net.

What it does

  • Public portfolio with structured data and an image sitemap
  • Drag-and-drop upload with WebP conversion and metadata stripping
  • Nested collections, drag reordering, one-click publishing
  • Passcode-protected client galleries with numbered photographs
  • Tick-to-select favourites: ZIP download or send-back to the admin
  • Enquiry inbox with email notifications and auto-reply
  • More than 140 automated end-to-end checks