A walkthrough

From shoot
to client's phone.
In seven steps.

This is the full flow, from the moment a shoot ends to the moment your client is saving photos to their camera roll. Scroll.

↓ Begin

Which one are you?

Step 01

You finish editing.

Photos sit in a folder somewhere on your Mac. Same as you do today, no workflow changes.

Lightroom — Smith Wedding

87 photos · 1.4 GB · Exported to ~/Photography/Smith Wedding/

Step 02

You tag the folder.

Right-click the folder in Finder, hit the green dot. That's the trigger.

Finder

Smith Wedding

87 items · Today, 4:13 PM

Highland Prom

Bonfire

Step 03

The watcher sees it.

A tiny background process on your Mac notices the green tag within 30 seconds. Computes size and cost, sends you a text.

iMessage · 4:13 PM

📸 Smith Wedding ready to upload: 87 photos, 1.4GB, ~$0.02/mo.

Confirm: caleb-photography.vercel.app/admin/confirm/...

Step 04

You confirm on your phone.

Tap the link. A small confirm page opens. Add your client's name and phone (or skip, send the link yourself). Hit confirm.

caleb-photography · Confirm Upload

Confirm Upload

Smith Wedding

Photos87
Size1.4 GB

Step 05

Photos upload.

Six photos in parallel. Compressed preview for fast loading, full-res for download. Takes about 90 seconds for a wedding shoot.

Terminal

$ upload-album.mjs

📸 Found 87 photos

⬆️ Uploaded 0/87

Concurrency: 6 · Avg 1.1 MB/s per worker

Step 06

Your client gets a text.

From your number, in your voice. They tap and they're in. No accounts, no apps to download, no Pixieset login.

iMessage · From Caleb

Hey Sarah! Your photos are ready: caleb-photography.vercel.app/g/xK9mP2 (available for 14 days)

Delivered

Step 07

They open it.

Mobile-first gallery. Drag to multi-select. Save to camera roll with one tap. Download all as ZIP on desktop. This is the real thing — not a screenshot.

Demo gallery preview
Open the demo gallery →

The end of the script

Want one?

Same setup, your photos, your domain. Fill this out and I'll reach out in a day or two with questions and a quote.