Your contact graph never leaves your devices.
Message content stays on the Mac. A thin relationship layer — names, cadence, timing — flows through your own iCloud to your iPhone. Tend doesn't operate a server that sees your data.
What stays on your Mac
chat.db locally with Full Disk Access and never copies the text anywhere else.What syncs through CloudKit
The iPhone needs a thin slice: who the contact is, when you last exchanged messages, and a few derived signals (cadence, balance, timing). That's what flows through your own iCloud to your own iPhone. Tend has no account, no central database, no way to read it.
What Tend can't see
I don't run a server that stores your graph. There's no admin console with your contacts in it. If Apple subpoenas Tend for your data, I have nothing to hand over. If you turn off iCloud, Tend stops syncing and the Mac keeps working.
The analytics, narrowly
I use PostHog for funnel shape — installs, permissions granted, first card tapped. Free-text is never sent. The proxy is allowlist-enforcing: only the event names I ship make it through. Analytics is opt-in at signup and a single toggle in the app.