Lightroom
The Two-Way Lightroom Client Gallery Workflow
Publish proofs from Lightroom, let clients pick, and pull the picks back into your catalog as a collection — so you edit only the frames the client actually chose.
Updated August 2026
Most client work is a selection problem before it is an editing problem. You come back from a shoot with 600 frames, the client needs to choose 40, and you only want to spend retouching time on the 40 they keep. The trouble is that the choosing happens somewhere other than Lightroom — in an online gallery — and the picks have to find their way home. Do that badly and you retype filenames, re-cull by eye, or worse, edit the wrong frames.
A good client-gallery workflow is a round-trip: proofs go out of Lightroom, the client's selection comes back in, and the two stay matched by filename the whole way. This guide walks the full loop, names the friction points that quietly cost you an hour per job, and shows how a two-way Lightroom plugin closes the loop instead of leaving you to reconcile it manually.
The round-trip, start to finish
Strip the workflow down and there are five moves. Each one is a place where files can drift out of sync if you are copying things by hand:
- Cull roughly in Lightroom. Flag or star the frames worth showing the client. You are not editing yet — you are deciding what goes into the proofing gallery.
- Publish proofs. Export web-sized JPEGs (2048px on the long edge is the sensible standard — sharp on a retina display, useless for theft or printing) and put them online under your own name.
- Send the gallery. The client browses, marks favorites, leaves comments, and confirms their selection.
- Pull the picks back. Their chosen filenames return to Lightroom and land in a collection.
- Edit only the picks. You develop the 40 the client kept, not the 600 you shot, then deliver the finals.
The whole game is keeping steps two and four glued together. If the proof the client tapped "yes" on is the same file your catalog can point to, the pick-back is automatic. If it isn't, you are doing detective work.
Why the manual version leaks time
Photographers who don't use a connected plugin usually run the loop by hand, and it works — until it doesn't. The recurring failures are always the same three:
- Re-uploading. You export a folder of JPEGs, then drag them into a web uploader in a browser. Every reshoot, every "can you add the ten from the second location," means another export-and-drag cycle. Nothing remembers what was already sent.
- Mismatched filenames. The gallery hands you back a list like "Smith-Wedding-214.jpg" but your catalog holds "_DSC7841.NEF." If your export renamed files, the client's picks no longer map cleanly to anything in Lightroom, and you rebuild the selection by squinting at thumbnails.
- Manual re-culling. With no pick-back, the client's favorites live in a spreadsheet, an email, or a screenshot. You sit in the Library module and re-flag every chosen frame one at a time. On a 600-image wedding that is a genuine half-hour of nothing.
None of these are hard problems. They are just small, repeated, and boring — the exact profile of work a plugin should absorb so you never think about it.
How a two-way plugin closes the loop
clientgallery.io ships a Lightroom plugin built around one idea: the catalog and the gallery are two ends of the same pipe, not two separate apps you shuttle files between. It works in both directions.
Proofs out. From inside Lightroom you publish your selected frames straight to a gallery as 2048px proofs — no separate export, no browser upload, no dragging folders. The photos go up under your branding, with zero platform branding wrapped around them. Re-run the publish after a reshoot and it behaves sanely: what's already up stays up, new frames get added.
Picks back in. When the client finishes choosing — marking favorites, leaving comments, applying colored labels — the plugin pulls that selection back into your catalog as a collection. The frames the client kept are now grouped in Lightroom, matched by filename, ready to develop. You open the collection and every photo in it is one the client asked for. That is the whole point: you edit the picks, not the pile.
Because the match is by filename end-to-end, the two mismatch problems above simply don't occur — the proof the client approved and the raw in your catalog are the same identity, so the reconciliation step disappears instead of being done carefully.
Fitting it into how you already shoot
The plugin doesn't ask you to change your culling habits. Keep flagging, rating, or color-labeling exactly as you do now; the publish step reads your selection and sends those frames. A practical rhythm looks like this:
- Import and do a fast first pass — reject the obvious misses, flag the keepers. This is the only culling you do before the client is involved.
- Publish the keepers as proofs. The client gets a clean, branded gallery on any device.
- Let the client take their time. Proofing tools — favorites, comments, colored labels — let them say not just whichframes but why ("love this one, can we crop tighter").
- Pull the picks back, edit the collection, and deliver the full-resolution finals as a downloadable ZIP.
Delivery is the far end of the same loop. Once the picks are edited, full-resolution files go to the client through temporary ZIP links that auto-expire after three days, holding up to 100 GB live — so the same platform that took proofs out and picks in also hands over the finished work.
What the plugin doesn't do — and the honest limits
A gallery is a proofing and delivery surface, not a RAW backup. clientgallery.io handles JPEG photos only — no video, no RAW warehousing. Your masters stay in your own storage and your catalog; the gallery holds the 2048px proofs and the full-resolution JPEGs you deliver. If you want off-site copies of masters, the optional archive tier keeps them on Backblaze B2, but that is a separate deliberate choice, not something the proofing loop silently does.
Fair-use limits are plain: up to 1000 photos per gallery, a 250 GB account cap on the paid plan, and 5 GB on the free tier. For the overwhelming majority of client galleries — a wedding, a portrait session, a commercial shoot — those ceilings are far above what a single job needs, and the 1000-photo gallery limit is comfortably more than any client should be asked to proof at once.
Pricing is flat: 10 $/month or 100 $/year, your first gallery free, unlimited galleries after that. There is no per-gallery fee and no upsell markup baked into client downloads, which matters when the plugin is something you run on every job.
Coming from Pixieset or another platform
If your galleries currently live in Pixieset, you don't rebuild them by hand. A one-click, whole-account import reads your entire Pixieset account through its API — galleries, sets, titles, and order — and reproduces the structure on clientgallery.io. Re-run it later and it skips whatever was already imported, so moving over is a background task rather than a weekend project.
The Lightroom loop is where a dedicated two-way plugin actually separates from the pack. Pixieset, Pic-Time, ShootProof, CloudSpot, and Zenfolio all deliver galleries competently, and several offer some Lightroom connection, but the round-trip — proofs out at a fixed 2048px and picks pulled back into the catalog as a collection, matched by filename — is the piece that decides whether your culling stays manual or goes away. Compare the platforms honestly on the alternatives page before you commit; the right answer depends on how much of your day is spent in Lightroom.
Frequently asked
How do client picks get back into my Lightroom catalog?
The clientgallery.io plugin pulls the client's selection back into Lightroom as a collection. The frames they marked as favorites are grouped in your catalog, matched to your originals by filename, so you can open that collection and edit only the chosen photos.
What resolution are the proofs published at?
Proofs publish at 2048px on the long edge. That is sharp on a high-resolution display for reviewing but small enough that proofs aren't useful for printing or theft. You deliver full-resolution files separately once editing is done.
Do I have to export and re-upload every time I add photos?
No. You publish selected frames straight from Lightroom — no separate export or browser upload. If you re-run the publish after a reshoot, photos already in the gallery stay put and only the new frames are added.
Does the plugin handle RAW files or video?
No. clientgallery.io is JPEG photos only — no video and no RAW warehousing. Your RAW masters stay in your own storage and catalog. The gallery holds 2048px proofs and the full-resolution JPEGs you deliver; an optional Backblaze B2 archive tier can hold masters if you want off-site copies.
Can I move my existing Pixieset galleries over?
Yes. A one-click import reads your whole Pixieset account through its API — galleries, sets, titles, and order — and reproduces it. Re-running the import skips anything already brought over, so you can migrate gradually.
What does it cost to run this on every job?
A flat 10 $/month or 100 $/year, with your first gallery free and unlimited galleries after that. There is no per-gallery fee, so running the Lightroom loop on every shoot doesn't change the price.
Your client galleries, under your name
Unlimited galleries, your branding, one-click Pixieset import, and a Lightroom plugin — a flat 10 $/month, everything included. Your first gallery is free.
Try clientgallery.io free