I assumed decentralized storage would obviously beat iCloud on price. Then I added Storj to my iOS app and did the maths. On full iCloud plans it doesn't. Between those plans, it often does.
The app is CopyProof. It copies photos and videos from iPhone and iPad to USB drives, SSDs and SD cards, and verifies every file with SHA-256. I have been fighting for this app for most of 2026.
A year on one app
I started on February 2. The idea was broad: photo backup, library cleanup, duplicate search, tidying contacts and calendars. In spring I moved it to a new architecture, module by module. TestFlight builds started in late May, because a real library on a real iPhone shows what twenty test photos never will.
The longest part wasn't the code. It was App Review. The app was rejected several times. Some issues concerned the name and presentation, and those took an evening to fix. The main one didn't: Apple felt the app was not unique enough. There is no quick patch for that, so I had to rethink the product.
I reworked it several times, renamed it from iPhoto Cleaner to Photo Backup and Clean and then to CopyProof, and cut everything secondary. What remained is the part it does better than others: copying with verification of every file. Build 19 finally reached the store, and CopyProof launched on October 6.
After that, plans that had been stuck behind review for months started moving. Four updates shipped in three weeks, the latest on October 29 with direct backup to your own Storj bucket. The project now has 353 commits, about 24,000 lines of Swift and 606 tests.
How the Storj integration works
There is no server of mine in the middle. You create a Storj account, a bucket and S3 credentials, then paste them into the app. Credentials stay in the device Keychain, and photos travel from the iPhone through gateway.storjshare.io into your bucket.
One honest caveat: with the hosted gateway, encryption happens at the gateway, not on the phone. If Storj must be technically unable to read a file, encrypt it yourself before uploading.
I wrote the S3 client myself, with no SDK: SigV4 on CryptoKit, plus multipart upload in 64 MB parts for large videos. Verification works like this:
- The request body is signed with a real SHA-256 and sent with
Content-MD5, so the gateway rejects corrupted data. - The SHA-256 of the source file goes into object metadata as
x-amz-meta-sha256. - After upload, a
HEADrequest compares size and hash. Only then does the file count as copied.
This confirms the copy without downloading it back, which matters because Storj egress is paid.
What it costs: Storj vs iCloud+
iCloud+ is sold in steps, and you pay for the whole plan even if you use half of it. Storj is linear: $7 per TB per month, with a $5 account minimum. Prices are US prices as of October 31, 2026, on the Storj Standard tier.
| Archive size | iCloud+ plan needed | iCloud+ $/mo | Storj $/mo | Cheaper |
|---|---|---|---|---|
| 100 GB | 200 GB | 2.99 | 5.00 | iCloud |
| 500 GB | 2 TB | 9.99 | 5.00 | Storj |
| 1 TB | 2 TB | 9.99 | 7.00 | Storj |
| 2 TB | 2 TB | 9.99 | 14.00 | iCloud |
| 3 TB | 6 TB | 29.99 | 21.00 | Storj |
| 4 TB | 6 TB | 29.99 | 28.00 | Storj |
| 6 TB | 6 TB | 29.99 | 42.00 | iCloud |
| 8 TB | 12 TB | 59.99 | 56.00 | Storj |
| 12 TB | 12 TB | 59.99 | 84.00 | iCloud |
| 15 TB | none | n/a | 105.00 | Storj only |
Storj wins in three bands: roughly 200 GB to 1.4 TB, 2 to 4.3 TB and 6 to 8.5 TB. The biggest relative gap is under 700 GB, at $5 against $9.99. Above 12 TB, Apple has no plan at all.
That suggests a practical trick. With a 2.5 TB library, Apple charges $29.99 for the 6 TB plan. Move 1 TB of old photos to Storj, drop back to the 2 TB plan, and you pay $16.99. That saves $156 a year.
The fine print
- The $5 minimum covers about 700 GB. Accounts paying in USDC are exempt.
- Egress is paid: $7 per TB, so restoring 1 TB costs about one extra month of storage.
- Minimum retention is 30 days. That doesn't matter for an archive.
- CopyProof tokens are a one-time cost: one file is one token, and 1,000 tokens are free. Packs cost $0.99 for 100, $3.99 for 500 and $6.99 for 1,000. On a library with tens of thousands of files this adds up, so include it in your sums.
- Storj does not replace iCloud. It doesn't sync devices or back up the iPhone. It is an archive, but deleting a photo on your phone won't remove it from the bucket.
- Storj Labs filed for Chapter 11 reorganization on July 26, 2026. The company says the network keeps running and expects no interruptions. Either way, a single cloud should never hold your only copy, so CopyProof lets you back up to a drive and a bucket.
Roadmap
The copy pipeline already talks to a storage protocol, so each new destination is a new implementation rather than a rewrite. They ship one at a time, with no dates, and the order may change.
| Stage | Storage | Status |
|---|---|---|
| Done | USB, SSD, SD card, Files folder, Storj | in the App Store |
| Home NAS | QNAP, Synology, UGREEN, TrueNAS, Asustor, WD My Cloud, Nextcloud | planned |
| Major clouds | Google Drive, Dropbox, OneDrive, Yandex Disk | planned |
| Low-cost and decentralized | Sia, Backblaze B2, Wasabi, Cloudflare R2 | exploring |
The last row is where real savings live. Sia Storage lists 5 TB at $14.99 a month and 10 TB at $19.99. Backblaze B2 starts at $6.95 per TB with no minimum fee. The existing S3 client should work with B2, Wasabi and R2 with few changes, while Sia still needs testing through its s3d gateway. So for now it is "exploring", not a promise.
The current queue is always at plunload.ru.
Which storage would you want in a photo backup app first?
Originally published at klukyanov.ru.
Shorter weekly write-ups (in Russian) — on Telegram.
Top comments (0)