THE LAST MILE OF A PRODUCT SHOOT
Every product.
Every view.
Ready to hand off.
Turn a folder of photos and a product list into a clear delivery. Spot missing views, compare competing shots, and package the originals without losing a pixel.
Photos stay on this device · No account · No upload
Find the gaps before your client does.
Your list, your shot plan.
Paste product IDs and labels. Choose two to five views for every product.
A place for every photo.
Select a thumbnail, then a matrix cell. Missing views and multiple candidates stay visible.
One considered handoff.
Download originals, an HTML contact sheet and manifests together. Save a mapping to pick up later.
YOUR WORKSPACE
From shoot to complete set.
Photo tray
Select a photo, then choose its product and view in the matrix. Use Tab and Enter or Space.
Your photos will appear here.
Completeness matrix
Green: one photo · Amber: multiple candidates · Dashed: missing. Every cell is a button.
Apply a product list to build your shot plan.
Inspect the candidates below. Removing an assignment keeps the original in your tray.
THE HANDOFF
Originals, context, and a clean paper trail.
ZIP includes every original (unassigned photos get their own folder), an HTML contact sheet, JSON and CSV manifests, and a reusable mapping. Name collisions get unique suffixes.
The CSV is a handoff manifest. ZIP paths are not public image URLs or a Shopify import. Nothing is certified or sent to a shop.
A mapping has filenames and hashes, no photo bytes. Re-select the original files or folder after reopening. Keep mappings private.
Built for the handoff, not another photo edit.
Do my photos leave my device?
No. Image reading, thumbnails, content hashes and ZIP assembly happen in your browser. There are no analytics, remote APIs or CDN assets. Your browser may use memory or temporary disk for large files; use a device you trust.
Are the original files changed?
No. The ZIP preserves the original image bytes, including metadata. Only the output names change. Thumbnails are generated separately for the workspace. Check sensitive metadata before sharing your delivery.
How do I resume a project?
Save the mapping JSON, then reopen it and choose the same originals. Matching uses the original relative path, size and SHA-256 hash. Use the same folder selection method; file moves or edits require reassignment. Identical filenames in different source folders stay distinct. Missing originals block export until you reselect them or explicitly forget them.
What are the limits?
100 products, 2–5 views, 150 JPEG/PNG/WebP files, 16 MiB per file, 128 MiB of original bytes total, 32 megapixels per image. Processing is sequential; ZIP creation also needs working memory. Start with a smaller batch on low-memory phones. RAW, HEIC, video, editing, AI matching and store APIs are excluded.