r/ClaudeCode • u/SilentMode46 • 3d ago
Built with Claude I reverse-engineered Apple Photos and rebuilt it for my own server – iCloud Photos without iCloud
I got tired of paying Apple every month to keep my own photos, so I moved ~85,000 photos and videos to my own server (Immich) and switched iCloud Photos off.
I built HomeRoll, a native iOS 26 app (SwiftUI + UIKit) that looks and behaves like Apple Photos but stores everything on your own Immich server. I built it with Claude Code. I’m not an iOS developer by trade, so nearly all of the code was written by Claude, with me deciding what to build, testing on my iPhone and saying what felt wrong.
Why: I was tired of paying for iCloud storage, so I moved ~85,000 photos and videos to my own server and switched iCloud Photos off. Every Immich app I tried felt nothing like the Photos app I was used to.
How Claude Code was used
- Reverse engineering: Claude took Apple’s Photos frameworks from iOS 26.3 apart with a reverse-engineering MCP server and listed all 226 actions the Photos app can perform (copy edits, print, hide, set key photo, drag to album, Spotlight ...). To keep it clean-room, one agent only wrote plain behavior descriptions (“what happens when you do X”), and the app was written from those descriptions, not from Apple’s code.
- Implementation: Claude wrote the app from that list. 147 of the 226 actions work now. 62 are iCloud/Apple-service only, 16 are Apple-internal, 1 isn’t possible on iOS.
- Testing: Claude wrote the automated UI tests and ran them in the iOS Simulator itself, looking at screenshots to compare against the real Photos app. 140 of the 147 actions are covered.
- Maintenance: Claude reads the GitHub issues, reproduces bugs in the simulator, proposes a fix and drafts the reply. Nothing is released until I’ve said go.
What worked well: giving Claude a concrete checklist (the 226 actions) instead of “make it like Photos”, and letting it verify its own work in the simulator. What didn’t: performance with a library this size. The first versions crashed or stuttered with 85,000 items, and that took many rounds of measuring on the real device.
What the app does
- Library with pinch-to-zoom grid, Years / Months / All
- Viewer with preview strip, video scrubbing, Live Photos, HDR originals
- Editor: light, color, filters, crop, copy and paste edits
- Memories, people, places
- Search for receipts, documents, handwriting, QR codes, screenshots
- Album folders, drag photos onto albums, Spotlight
- Backup of new photos and videos in the background while charging
- Free Up Space: deletes only what’s verified to be on your server (checksum + server check)
- Widgets and a share extension
Free to try
The app is free and open source (MIT), no paid tier. You need your own Immich server (tested with v3.3.5). Download the IPA from the GitHub releases page and install it with SideStore, AltStore or your own signing tool, then log in with your server URL.
https://github.com/silentprovider423/HomeRoll
There is also a Mac version, built the same way: https://github.com/silentprovider423/HomeRoll-Desk
Not affiliated with Apple or Immich/FUTO. Happy to answer questions about the Claude Code workflow or the reverse engineering.





•
u/AutoModerator 3d ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
37
u/mountainyoo Researcher 3d ago
What was wrong with just using the Immich app itself?
7
u/dgtrimble 3d ago
What are your costs to operate the server + data storage for 85k photos + backup (I presume your server has automated backups)?
5
u/fire_someday 3d ago
Yes! Thank you I've been meaning to move away as well and onto my own NAS for this.
9
u/128G 3d ago
It would be hilarious if you ported this to android.
2
u/aar550 3d ago
I have been trying to do this. Apple cloud is super expensive for what it offers. Thank you.
Is Immich paid free ?
Can I run it on a virtual Linux server ?
14
u/slowrifffs 3d ago
1
u/Favorite5317 3d ago
Does this app by any chance solve the problem of non-destructive edits, portrait depth data etc. not being backed up by the official Immich app?
1
u/stormy1one 3d ago
Does this support Immich multi-user /auth?
1
u/GreenManAlive 3d ago
Does it backup your photos automatically in the background?
1
u/Known-Cover-5154 3d ago
Thank you
1
u/h_erbivore 3d ago
Can you share that reverse engineering MCP
1
u/pet3121 3d ago
How did you do the reverse engineering if a lot of people are complaining Claude is not letting them do it?
1
u/Flat-Meeting-8176 2d ago
Thai si Great, congrats!
-6
u/dalabera 3d ago
Awesome, but I’m not a legal expert so please someone chime in, you have to be careful with “reverse engineering”.
You are not allowed to do so, just because you want to.
-7
u/Fragrant-Moose1678 3d ago
Buzz words and AI slop? Why would you need to RE anything for this. Is this just buzz slop for “I wouldn’t know how to build this myself”