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.

Open workspace

Photos stay on this device · No account · No upload

THE DELIVERY CHECKLOCAL
STUDIO / COLLECTION 012
PRODUCTFRONTSIDEDETAILStoneware 01✓✓✓Stoneware 02✓—✓Stoneware 03✓✓2 shots

Find the gaps before your client does.

01 / DEFINE

Your list, your shot plan.

Paste product IDs and labels. Choose two to five views for every product.

02 / RECONCILE

A place for every photo.

Select a thumbnail, then a matrix cell. Missing views and multiple candidates stay visible.

03 / DELIVER

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.

Private by design. Nothing is uploaded or saved automatically. Download your mapping before closing this tab. Original metadata (including any GPS data) stays in exported photos.
Start with your product list, or try the demo above.
1 Product list

1–100 products · IDs keep leading zeros · Quoted commas and newlines supported

2 Expected views

Changing the list or views preserves matching assignments. Removed cells become unassigned.

3 Photo set

Or drop photo files here. JPEG, PNG, WebP only. 150 files · 16 MiB each · 128 MiB total · 32 megapixels each. Large images process one at a time.

0photos loaded

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.

Products × expected views. Select a photo in the tray to assign it.

Apply a product list to build your shot plan.

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.