Back to app

The sync model

Local-first pull/push, the push filter, and 'Pull N missing'.

SnapFlow Sync is local-first: the files on your Mac are the source of truth. The grid shows your local photos and the album's server photos together, so you always know what's where.

Receive and Send

Each album has a sync card with two columns of toggles:

Receive (pull down from the server)

  • Pull raws — download the original files into the album's raws/ folder.
  • Pull proofed — only the photos your client selected (shown when proofing is in use).
  • Pull XMP — sidecar files carrying metadata (on by default).

Send (push up to the server)

  • Push raws — upload everything in raws/.
  • Push finals — upload the edited JPEGs you've dropped into finals/ (shown once a finals/ folder exists).

An album's sync card — Receive and Send toggles

The push filter

The push filter dropdown decides which photos a push includes, by reading each file's rating from its local XMP:

Filter Uploads
All photos everything
Picks only (≥4★) only photos you rated 4 or 5 stars
Non-rejected (skip ✗) everything except photos you rejected

So a typical flow is: pull raws → cull → set the filter to Picks onlyPush raws to send just your selects.

"Sync now" and the summary line

Click Sync now on an album to run a sync: it pulls whatever your Receive toggles ask for, then pushes whatever your Send toggles + filter ask for. Raws go up as the raw phase; finals go up as the final phase.

The summary line under each album is toggle-aware — it only nags about work that your toggles actually enable:

  • 365 local — how many photos you have on this Mac.
  • 12 raws to push — only shown when Push raws is on and there are local-only files.
  • 40 raws to pull — only shown when Pull raws is on and the server has files you don't.
  • all synced — shown when a toggle is on and nothing is pending.

With every toggle off, you just see the count — no nagging.

Pull N missing

The footer's Pull N missing button fetches everything you're missing in one click (sized to your enabled pull toggles), and replaces the old pager. Next to it, 120 shown · 365 on this Mac tells you how much of the album is local.

Filtering the grid

Above the grid, chips let you narrow what you see:

  • Source — All / Synced / Server only / Local only.
  • Phase — All / Raws / Finals / Proofed.
  • Rating — All / Picks / 5★ / Rejected / Unrated.
  • Sharpness — Sharp / Blurry (from an automatic blur score).

Bursts collapse automatically behind a +N cover so a 12-frame sequence takes one tile, not twelve.

Tip

The app watches the album folder and the server live, so new camera files and teammates' changes appear without a manual refresh. The background refresh loop is only a safety net.