Wedding film and photo by trade. I re-built the macOS tools that fit into my workflow mainly in file management because the ones that existed did not fit the way I work.
- Shooting and cutting weddings, then culling the day in Apature, which I keep patched to my own Photo Mechanic loop.
- Ship-ready offloading: Offload writes a card to several drives at once, hashes each copy, reads it back, and leaves an MHL report on the drive.
- Moving the archive into Immich through SalcedoSync, and re-encoding the keepers with HandBrakeBatch.
What is public and has a release. The state column is the honest one.
| Repo | What it does | State |
|---|---|---|
| freefilesync-offload | FreeFileSync fork: verified card offload for macOS, with a native window | released, v0.4.0 |
| SalcedoSync | Uploads photos to Immich with album choices, compression and in-app progress | released, v1.5.2-mod |
| Salcedos-Apature | Keyboard-first culler, adapted from Apature for the way I cull a wedding | released, v0.1.2 |
| HandBrakeBatch | Batch encoding for the archive, modernised after the original stopped moving | released, v1.4.0 |
| DupeCleaner | Finds duplicate files across drives that have been copied too many times | released, v4.4.0 |
Grouped by the job, not by logo count.
| Work | Tools |
|---|---|
| macOS apps | C++ · Swift and SwiftUI · Rust · wxWidgets |
| Glue and automation | Python · shell · launchd · ffmpeg |
| Photo workflow | Photo Mechanic-style culling · Immich · HandBrake · ASC MHL |
| Taking things apart | Ghidra · IDA · REA, to see how an app actually does it before I replace it |
Start with Offload if you shoot cards and want proof the copy landed, and Apature if you cull for a living. Both exist because a wedding workflow needed them, not because macOS needed another app.

