Proofroom
Client photo proofing you own. Send a gallery, get picks back, pay no monthly ransom.
Client proofing for one photographer or studio, the Pic-Time and ShootProof shape without the subscription. Upload a shoot, send the client one private link, and they heart their favorites, leave a note on any photo, and hit send. The picks land in your inbox as a filename list you can hand straight to your editing workflow.
Not a starter scaffold, a finished product. The seed ships a real studio with a family session already out for proofing: photos in the grid, two favorites hearted, comments waiting in the selections view. The client page is a fast, minimal gallery with lazy loading, a keyboard-driven lightbox, a live picks counter against the limit you set, and an optional 4-digit PIN. Originals stay in private storage and render only through short-lived signed links; per-photo downloads are a switch you flip per gallery.
The owner console is a calm dark tool: create a gallery with a client, pick limit, PIN, downloads, and a closing date; upload the shoot (files named 001, 002 keep shoot order, or drag to rearrange); copy the link or email it with one click. When picks come in, the selections view highlights the hearted frames with the conversation inline, and one click copies the filenames or exports a CSV. Galleries close themselves on their expiry date.
Source-available. Fork it onto your own subdomain, edit any file, own it forever, with no per-gallery fee and no storage upsell. AGENTS.md ships ten extension recipes (watermarked previews, download PINs, client-chosen covers, print-size warnings, ZIP delivery, second-round galleries, auto reminders, storage cleanup) so you or your AI tool can grow it into exactly the proofing flow you want. Pairs with the Halide and Selene site templates for your public portfolio. Free to fork and self-host on Hatchable.
Talk to it from your AI
Once Proofroom is on your account, the same AI you used to install it can read its data, send its emails, and change its code — for the life of the project. Try things like:
Every Hatchable project ships with an MCP server scoped to it — how it works.
Features
One private link per shoot
Every gallery lives at an unguessable token URL with an optional 4-digit PIN, a pick limit, an expiry date, and a per-gallery download switch. No client accounts, no passwords to reset.
A gallery clients actually enjoy
A fast, minimal grid with lazy loading and a keyboard-driven lightbox. Hearts save instantly, a live counter shows picks used against the limit, and notes attach to the exact photo they are about.
Picks come back as filenames
The client hits send, the selection locks exactly once, and you get an email listing the picked filenames. Copy them to your clipboard or export a CSV for your editor or lab.
Comments where the photo is
Clients ask for the crop or the brighter edit right on the frame; you reply from the console and the answer shows up in their gallery. No more screenshots over text message.
Originals stay private
Photos live in private project storage and render through short-lived signed links minted per request. Downloads, when you allow them, go out the same way and never through a public URL.
Source-available + AGENTS.md
Plain JS, no build step. Fork it, run it on your subdomain, edit any file. Ten extension recipes ship with the code: watermarks, download PINs, ZIP delivery, second rounds, auto reminders, and more.
What you get
- Source code, deployed to your account on Hatchable
- Your own subdomain (or BYO custom domain on the Builder plan)
- A real Postgres database, scoped to this app
- The ability to make a copy, edit it, and redeploy via your AI tool
- CSV export of your data, any time