Sync via Apple CloudKit (private iCloud database) as an alternative to BoltAI Cloud
Hi,
Thanks for BoltAI. Having the same chats on Mac, iPhone and iPad is great.
A question and a suggestion: why not use Apple's CloudKit (https://developer.apple.com/icloud/cloudkit/), i.e. each user's private iCloud database, to sync BoltAI data, instead of or alongside BoltAI Cloud?
From the v2 announcement, BoltAI Cloud runs on Supabase with row-level security, and end-to-end encryption covers API keys. That's a sensible design. It still means my conversations, which often contain sensitive personal and work material, are stored in readable form on a third-party server. For a privacy-focused app, that's the part I'm not comfortable with.
What CloudKit would bring:
Data stays in the user's own iCloud account. BoltAI never stores it, so there's no extra server to trust, secure, breach or be legally compelled to hand over.
Real end-to-end encryption. With Advanced Data Protection turned on, CloudKit fields marked as encrypted (CKRecord.encryptedValues) and all CKAssets are end-to-end encrypted, with keys held only on the user's devices.
No separate account. The Apple ID already signed in on the device is the identity.
Storage counts against the user's iCloud plan rather than a quota you have to host and pay for, which could also lower your infrastructure costs.
Native fit. BoltAI runs on Mac, iPhone and iPad, which is exactly CloudKit's ecosystem, and CKSyncEngine (macOS 14 / iOS 17) handles much of the sync plumbing.
Thanks!
Log in to comment and vote
Comments2
Linked to End-to-end encrypted cloud sync
Daniel Nguyen
Oct 15
Hi,
Thanks for writing this up. It's clear you've looked into CloudKit properly, and you're right about what it does well.
I did consider it, but decided against it for a few reasons:
- BoltAI also runs on web and Android, so CloudKit can't be the sync layer. It would have to sit alongside BoltAI Cloud, which means two sync engines.
- Keeping one sync engine reliable is already a lot of work. Two would mean more bugs and slower fixes for everyone, on every platform. As an indie developer, I do not have the bandwidth to maintain 2 sync engines.
- When a sync issue comes up, I need to be able to see what happened. CloudKit makes that hard, especially with Advanced Data Protection on, so support would get much slower.
Your privacy concern is fair, though. Cloud Sync is optional: if you leave it off, your chats stay on your Mac and never reach our servers. I'm also open to adding end-to-end encryption for chat content in the future, though it's not on the roadmap yet.
Thanks again for the thoughtful suggestion.
Daniel
Aλexandre Peyroux
Oct 15
Hi Daniel,
Thanks for taking the time to explain your reasoning.
I'll keep my fingers crossed that end-to-end encryption for chat content makes it onto the roadmap someday.
I use local models and privacy-first providers like Tinfoil, so the moment content flows through a sync service that isn't end-to-end encrypted, it breaks the whole point of that setup.
Either way, thanks again for the thoughtful reply.
Alexandre