How Sidekick's data is technically protected, and where anything that leaves your phone is physically processed. This is an engineering-level description for people who want to know "how it's built," not just "what we're allowed to do."
Sidekick is designed to work entirely offline by default. Employees, recordings, transcripts, notes, tasks, calendar events, and time off are stored only locally, in an encrypted database on the manager's phone — none of it reaches our server unless the manager deliberately enables a specific cloud-based feature (described in section 4). The app doesn't require creating an account or providing an email address or phone number.
| What | How |
|---|---|
| Database (metadata, transcripts, notes, tasks, employee data) | Fully encrypted with SQLCipher (AES-256). The key is a random 256 bits generated locally on first launch, stored in EncryptedSharedPreferences protected by a hardware key from the Android Keystore. The manager never sees or enters this key. |
| Recording audio files | Each file is encrypted separately with AES-256-GCM, using a software key generated randomly per file and "wrapped" (envelope encryption) with a hardware key from the Android Keystore — the hardware key itself never leaves the device's secure element. |
| App lock PIN / pattern | Never stored in plain form — saved as a SHA-256 hash with a salt unique per installation. |
Optionally, the manager can protect the app itself with a PIN code, pattern, or fingerprint/face (Android's system biometrics). Once the lock is set, the app automatically locks when it goes to the background, so a phone left lying around doesn't give a bystander access to the data.
The core features (recording, local transcription, notes, tasks, calendar) run 100% offline and never send content anywhere. Content only reaches the cloud when the manager deliberately turns on a cloud-based AI feature (meeting summaries, task detection, cloud transcription, "ask AI", meeting prep) — available on the Premium/Pro plans. The Free plan uses a local, extractive equivalent of these features, without sending anything.
Once the manager enables cloud features, there are two paths, depending on settings:
On both paths, the content is then subject to the privacy policy of the given AI provider (Mistral AI, Google Gemini, ElevenLabs) — worth reviewing if you process particularly sensitive data in your notes. None of these providers is selected by us by default without the manager's knowledge — choosing a provider and enabling the cloud at all are always an explicit decision made in Settings.
Our server (Cloud Run + Supabase database) stores only technical data, linked to an anonymous installation identifier (a random UUID generated on the phone — not an advertising identifier or any personal data such as a name or email):
the content of recordings, transcripts, notes, tasks, employee data, or the manager's name/email — our database simply doesn't have these fields.
Every network connection the app makes — to our server, as well as directly to AI providers when using your own API key — happens exclusively over HTTPS/TLS. The connection between our server and the Supabase database is also TLS-encrypted.
| Component | Provider | Region |
|---|---|---|
| Application server (AI proxy, purchase verification) | Google Cloud Run | europe-central2 — Warsaw, Poland |
| Statistics/purchases database | Supabase (PostgreSQL) | EU region (Frankfurt) |
The information below concerns standard API-key access (the way our proxy server uses these providers) and may vary depending on the specific plan/account — accurate as of August 2026, checked against the providers' official documentation.
| Provider | What it's used for | Processing location | Data retention |
|---|---|---|---|
| Google Gemini | Summaries, task detection, "ask AI" (one of two options alongside Mistral AI) | The standard Gemini API (the same type of access our key uses) does not guarantee processing within the EU — it operates in global mode, without being pinned to a region. EU location is guaranteed only by Vertex AI with explicit region "pinning" (a separate, enterprise Google Cloud service), which we don't use here. | At the paid API tier, Google states it doesn't use request/response content to train its models, but logs it for about 55 days solely for abuse detection. At the free tier (Google AI Studio without payment), Google may use content to improve its services — which is why we use a paid-tier key. |
| ElevenLabs (Scribe) | Speech-to-text transcription | By default (outside an Enterprise account), data is processed and ultimately stored in the USA, regardless of the user's location — ElevenLabs also has infrastructure in the EU and Singapore, but a guarantee of EU-only processing is a paid option available only on the Enterprise plan, which we don't use here. | ElevenLabs offers an optional "Zero Retention Mode" (no content retained on their servers) — this is also a feature that requires separate account-level configuration, not the default state for a standard API key. |
Local data on the phone is deleted by the manager directly in Settings ("Clear data") — fully offline, instantly. The technical data described in section 5, stored on our server, can be deleted with the "Delete data from server" button in Settings, or by submitting a request on the Data Deletion Request page (also without access to the app).