SnapSort product design

One quiet workspace.
Every frame accounted for.

A focused macOS interface for moving quickly through a shoot. Dark, precise, and deliberately restrained so the photographs—not the chrome—hold the room.

THE FLOW

Project to Trash, five steps

1
Create a project

⌘N or drop folders on the window. Files stay where they are.

2
Add sources

Folders and loose files join the project; pairs are matched automatically.

3
Sort

Review one-by-one, or flip to the grid and mark whole selections.

4
Sweep

Rejected JPEG+RAW pairs move to the macOS Trash together.

5
Undo, if needed

Restore any photo — or the whole sweep — while it's still in Trash.

SCREEN 1

Projects

The front door. A project is a container of sources, not a copy of your photos — SnapSort references files in place until you sweep.

SnapSort
SnapSort

Cull once. Both files follow.

New Project  ⌘N
Drop folders or photos here …or press ⌘O. Anything you add becomes a source in the new project.
RECENT PROJECTS
Tulum Wedding 2 days ago
~/Photos/2026-07 Tulum · 2 sources
161 of 180 sorted19 left
Cenote Morning last week
/Volumes/A7IV/DCIM · 1 source
96 of 96 sorteddone ✓
Portraits — Ana June 28
~/Photos/Portraits · 1 source
64 photosnot started
  • Non-destructive by default: adding a folder never moves or copies files — the only file operation SnapSort ever performs is the sweep.
  • Each recent project carries a single quiet progress bar — how much of the shoot is sorted — with the verdict counts saved for inside the project itself.
SCREEN 2

Review view

A single-image workspace with everything secondary pushed to the edge: source context on the left, verdicts and file actions in the chrome.

SnapSort — Tulum Wedding
‹ Projects Tulum Wedding · 180 pairs
Review Grid
Trash 43 Sweep
SOURCES 2026-07 Tulum 164 Ceremony picks 16
Kept 118 Rejected 43 Undecided 19
K keepX reject←→ move
DSC04211 JPG + ARW ✓ KEPT
  • Photography-first anatomy: sources sidebar, full-bleed preview, and a verdict-dotted filmstrip. The sidebar's bottom block is a live tally.
  • The view switcher sits dead-center in the toolbar; a two-finger pinch does the same flip without leaving the keyboard–trackpad flow.
  • Trash is a first-class toolbar item with a count — deletion is always visible, never buried.
SCREEN 3

Grid view

The same workspace pulled back into a contact sheet. The transition feels like zooming out, not changing modes, and keeps batch verdicts within reach.

SnapSort — Tulum Wedding
‹ Projects Tulum Wedding · 180 pairs
Review Grid
Trash 43 Sweep
3 selected ✓ Keep ✕ Reject esc clears
04211
04212
04213
04214
04215
04216
04217
04218
04219
04220
04221
04222
04223
04224
04225
✓ 118 kept✕ 43 rejected19 undecided click select · ⌘-click add · ⇧-click range
  • Selection is blue, verdicts are green/red — selecting never changes a verdict until you press one of the two buttons in the floating bar.
  • Click selects, ⌘-click adds, ⇧-click ranges — standard macOS grammar, nothing to learn.
  • The floating bar carries exactly the choice you asked for: mark the selection needed (✓ Keep) or not needed (✕ Reject).
  • Rejected cells dim in place rather than vanishing, so the grid stays an honest map of the whole shoot.
SCREEN 4

Trash & undo

Sweep moves pairs to the macOS Trash — and SnapSort keeps the receipt. Every sweep is reversible until the Trash itself is emptied.

SnapSort — Tulum Wedding
‹ Projects Tulum Wedding · 180 pairs
Review Grid
Trash 43 Sweep
Recently removed43 photos · 86 files · 1.4 GB — currently in the macOS Trash
DSC04213JPG + ARW · 32.8 MB · swept 2 min ago
Restore
DSC04216JPG + ARW · 31.5 MB · swept 2 min ago
Restore
DSC04220JPG + ARW · 33.1 MB · swept 2 min ago
Restore
Restore all 43 Undo last sweep ⌘Z Recoverable until the macOS Trash is emptied
  • Per-photo restore: each row puts both files back in their original folder and returns the photo to the project as undecided.
  • ⌘Z undoes the whole sweep as one action — the receipt records exactly which files went where.
  • If a file has already left the Trash, its row says so plainly instead of failing silently.
INPUT MAP

Every gesture, one list

KX

Review view. Move through the shoot; keep or reject the current pair.

pinch

Flip views. Pinch out zooms into Review; pinch in falls back to the Grid. The toolbar switcher and ⇧⌘G do the same.

click⌘click⇧click

Grid view. Select, add to selection, select a range — then verdict the lot from the floating bar.

Sweep. Every rejected JPEG+RAW pair moves to the Trash together. Confirmation shows the exact file count and size.

⌘Z

Undo sweep. The last sweep comes back wholesale; the Trash panel restores individual photos.

⌘N⌘O

Projects. New project; add folders or files as sources.

APP ICON

The Cull — V3 locked

The Cull, refined is the chosen mark. The alternatives stay on the board for reference, all using the same dark-glass squircle, lit frames, and tactile sprockets.

CHOSEN
V3

The Cull, refined

Vertical strip, two lit keepers, and the reject tumbling out of its empty slot. Already in place as the app's brand mark on Screen 1.

V1

Double Reel

Closest to your reference: two linked strips, warm over cool, with one kept frame and one culled. The quietest of the six.

V2

The Splice

An editor's cut: the strip is sliced mid-reel and the dead frame drifts off-axis. The amber cut line is the editing gesture itself.

V4

Keep Light

Culling as light: the kept frame glows on the lightbox while its neighbours go dark. Strong silhouette at menu-bar size.

V5

Frame Pull

The reject physically pulled from the strip, leaving its slot empty — the most literal picture of what Sweep does to your folder.

V6

Grease Pencil

The oldest editing mark there is: circle the keeper, cross out the cut — drawn in amber china marker over the contact strip.