Back to Portfolio

Picturing Us

Description

Picturing Us is my wedding and portrait photography business in Des Moines, and the site behind it is one I built myself rather than renting a gallery service. The public side is the marketing site: the work by category, pricing, how a shoot goes, an FAQ, and a contact form, with Spanish-speaking clients called out because that is a real part of the market here. Every package includes full-resolution files with no watermarks, and the site says so up front.

The gallery delivery system is what makes the site worth building. After a shoot I create a gallery in the admin, drag the photos onto the page, and the server does the rest: it keeps the original untouched and generates 3800px, 2200px, and thumbnail copies with the orientation corrected. Setting up the look takes a few clicks. I pick a gallery style (masonry, uniform grid, cinema, mosaic, or filmstrip), choose an optional cover page with light, dark, or cream panel layouts, set a cover photo, and write a welcome message that greets the client when they open it.

Delivering to the client is one link. Each gallery gets its own clean URL that I can password protect, set to expire, and switch between published and hidden. The client opens it on any device, flips through a full-screen lightbox with keyboard controls, and hits Download All to get a zip of everything at full size. There is no account to create and nothing to install.

Clients can also mark the ones they love. A heart on any photo saves it as a pick, picks persist between visits, and a filter shows only their picks. On my side, a Client Picks view shows every photo that has been hearted and how many people chose it, and I can download just those at 3800px or the originals, which makes album and print orders simple. I control what the client sees too: any photo can be hidden or shown, individually or in bulk, hidden photos stay out of downloads, and I can rotate, caption, reorder, or delete from the same screen. A photo count on each tile shows how often it has been viewed.

It is plain PHP and MySQL on my own server, with transactional email through an API and nothing stored anywhere but my home lab.