Hi everyone! 👋🇧🇷
I’m a Brazilian developer and Immich user. I built Ponte Fotos (“Photo Bridge”) to make moving between Apple Photos and my self-hosted Immich library easier.
I wanted to transfer originals from my Mac whilst keeping capture dates, locations and Live Photo associations, and to upload files from external drives without losing track of their metadata. The project has since grown to support transfers in both directions and a few library organisation tools.
Update — v0.9.4: the app and documentation are now available in English and Português (Brasil). The video below uses British English.
A quick look
Processing video k9cyfky5lhxh1...
Watch or download the British English video (66 seconds) — direct MP4 if the Reddit player is still processing.
A 66-second illustrated overview. These animations explain the workflows; they are not a screen recording.
What it does
- Apple Photos → Immich: upload originals to the timeline, an existing album or a new album. Download iCloud originals when authorised and available, and preserve supported Live Photo associations.
- Folders and external drives: scan folders recursively, read available image/video/XMP metadata, and review dates and GPS before uploading. Source files stay unchanged.
- Immich → Apple Photos: download originals, verify checksums, and import into an existing or new Photos album. Previously imported items can be added to another album without downloading or creating more copies. Compatible Live Photo pairs are supported.
- Library organisation: find exact duplicates across selected albums and accessible accounts, compare album contents, and organise a recognised person’s photos by age using their birthday in Immich. Proposed changes require review and confirmation.
- Connection: choose local or remote addresses manually, or let the configured Wi-Fi select the address. API keys are stored in macOS Keychain.
The app in use
Processing img tr2o19k17axh1...
Reviewing files from a demo folder, including an item with missing metadata.
Processing img q9ih11n37axh1...
Immich → Apple Photos: capture date, GPS, Live Photo status and an item previously imported by the app.
These are captures of the app running with synthetic demo data and British date formatting. No personal library is shown and no real transfer was performed for these images.
Requirements and current limits
Ponte Fotos is a native Swift/SwiftUI app for Apple Silicon Macs running macOS 14 or later, with Immich 3.x for server features. The app itself needs no Node.js, Docker or separate cloud service.
This is still an evolving personal project. It does not transfer Apple Photos editing history, recognised people or every proprietary metadata field. Duplicate detection uses exact checksums, not visual similarity, and the import history only tracks imports made by Ponte Fotos. The downloadable app is locally signed and is not notarised.
Please keep backups and try a small batch first, especially before changing album membership or moving duplicate copies to the recoverable bin. The app does not empty Immich’s bin, and blocks discarding Live Photos in its duplicate workflow.
Source, downloads and documentation
Processing img 24at9n557axh1...
GitHub · Download v0.9.4 · Português (Brasil)
Ponte Fotos — an independent personal project, with no official affiliation with Apple or Immich.
I’d welcome feedback from other Mac and Immich users: which part of your workflow would this help with, and what would you want to test first? Bug reports and suggestions on GitHub are welcome too.
Cheers from Brazil! 🇧🇷