crestlume Privacy Policy
Effective date: 4 November 2026
This policy explains what personal data crestlume handles, why, where it goes and what you can do about it. It covers the crestlume app on the web (app.crestlume.com), on desktop and on Android, and the website crestlume.com.
We wrote it in plain words. Where the app does something that weakens a promise you might expect (for example, who holds the key to your synced data in the standard sync mode, that a report about an AI answer is not end-to-end encrypted, or that your Google Calendar connection passes through our server when it is renewed), we say so openly.
Some features described here are not live yet: paid plans, AI credits, the AI agent running through our own server, attachments in the agent chat and syncing of agent chats. They are marked (planned). We will update this policy and the effective date when each one launches.
1. Who is responsible for your data
crestlume is run jointly by Kostiantyn Durlov and Yevhen Hoha, two individuals (not a company) who live in Romania ("we"). We are joint controllers of your personal data: we decide together why and how it is processed.
- Email for everything, including privacy requests: support@crestlume.com
- Postal address (Kostiantyn Durlov): Strada Negoiul, 500002 Brașov, Romania
As joint controllers (Article 26 GDPR), we have agreed that both of us read support@crestlume.com and either of us answers and acts on the requests sent there. You can exercise your rights with either of us.
We have not appointed a data protection officer, because the law does not require one for a service of this size and kind.
2. The short version
- crestlume is local-first. Your tasks, goals, habits and other app data live on your device. You can use the app without an account, and then your app data does not leave your device, except in the cases listed in section 3.
- If you create an account and use sync, your app data is encrypted on your device before it is uploaded. In the standard sync mode we hold the key that can unlock it, so we could technically read your synced data. We do not do that. With Extra privacy turned on, only your passphrase unlocks it and we cannot read it. Section 5 explains both modes.
- When you delete an item, its content is erased from our server the next time that device syncs. A small deletion record without the content stays so your other devices learn about it (section 6).
- The AI agent sends your messages and parts of your app data to an AI service (OpenRouter) and the AI model provider it picks. Today this happens with your own OpenRouter key, directly from your device. The app asks OpenRouter to use only providers that do not store or train on your prompts (section 7).
- If you report an AI answer from inside the app, the report (including the answer and your message before it) is stored on our server in a form we can read: unlike synced data, it is not encrypted on your device first (section 4.4).
- Google Calendar needs an account. The connection is synced encrypted between your devices like your other data, but to renew it your device sends its Google token through our server, which does not store it. While it passes through, we could technically read it, Extra privacy included (section 8).
- We do not sell your data or show ads, and the app contains no analytics. We do not use your data to train AI models.
- You can delete your account in the app or on a public web page (section 13).
3. Using crestlume without an account
You can use the app without signing in. Your app data then stays on your device. Even so, some things involve other parties:
- Opening the web app: your browser downloads the app from Cloudflare, which sees your IP address and standard browser information (section 9).
- Android: the app includes Google's Firebase Cloud Messaging, which we use to wake your other devices for sync. Its automatic start is switched off: it registers your device with Google only once you are signed in, have allowed notifications and have at least one reminder turned on (section 4.3). Without an account, the app does not register your device for push.
- Reminders in a browser: if you allow notifications in the web app, the browser registers with its push service, and our server keeps that push address and the times of your upcoming reminders, so they arrive while the app is closed (section 4.3). This works the same with or without an account and is not linked to one.
- The AI agent, if you choose to use it (section 7).
- Reporting an AI answer without an account opens an email draft to us, which is sent only if you send it (section 4.4).
- Desktop updates: when you click "Check for updates", the app contacts our download server, run by Cloudflare, which sees your IP address (section 9).
Google Calendar needs an account, so without one the app does not connect to it (section 8).
Legal basis for the web hosting and update checks above: our legitimate interest in delivering the app and keeping it secure (Art. 6(1)(f)). For push, the agent and reports, see their sections.
4. What data we handle and why
4.1 Your account
| Data | Why | Legal basis (GDPR) |
|---|---|---|
| Email address | To create and run your account, sign you in, and send you sign-in and security codes. | Contract (Art. 6(1)(b)) |
| Password | To sign you in. Our hosting provider stores only a secure hash, never the password itself. Your password is not used to encrypt your data. | Contract |
| Sign-in sessions (tokens that keep you signed in) | To keep you signed in on each device. | Contract |
| One-time email codes | To reset your password, or to confirm it is you before you reset your cloud copy or delete your account. | Contract |
| The domain of the email address you sign up with (the part after @) | Before an account is created, the app checks that the domain can receive email and is not a throwaway address. The throwaway check runs on your device against a list built into the app. For the other check, your device asks Cloudflare's public DNS service (cloudflare-dns.com) for the domain's mail records, so Cloudflare sees the domain and your IP address. The full address is never sent. | Legitimate interest in keeping accounts reachable and blocking abuse (Art. 6(1)(f)) |
| Captcha check (Cloudflare Turnstile), when enabled | To block automated sign-ups and abuse. Cloudflare checks signals from your browser or device. We only receive a one-time pass token and do not keep it. | Legitimate interest in protecting the service (Art. 6(1)(f)) |
| Technical logs: IP address, browser or device type, time of requests | Our hosting provider (Supabase) keeps logs of sign-in and server requests. We use them to keep the service secure and fix problems. | Legitimate interest |
| Google account details, if we enable "Continue with Google" (built but not available yet) | Google would share your email, name, profile picture link and Google account ID with our sign-in provider. | Contract |
An account is optional. You need an email address and a password only if you want an account (for sync and, later, paid plans); without them you can still use the app on one device. We are not required by law to collect them.
We send only emails needed to run your account: sign-in and security codes (password reset codes and confirmation codes) and important notices about your account, such as changes to our terms or this policy. We do not send marketing email. If we ever want to, we will ask first.
4.2 Your synced app data
If you sign in, the app syncs your data between your devices through our server. This covers your profile name, settings, spheres, calendars, goals, plans, stages, tasks, habits and check-ins, quests, rewards, redemptions, schedule blocks, routines and your points history, including all titles, notes and descriptions, and your Google Calendar connection if you made one (section 8).
- Why: to keep your devices in step and let you recover your data on a new device. Legal basis: contract.
- How: each item is encrypted on your device (XChaCha20-Poly1305) before it is uploaded. Section 5 explains who holds the key.
What our server can see without decrypting anything:
- your account email;
- which kinds of data you have (for example "tasks") and how many items of each;
- the size of each item;
- when items were created, changed and deleted, and when your devices synced;
- whether you use Extra privacy (section 5);
- how many Android devices have push turned on.
Sync has limits per account (number of items and total size). If you reach them, sync pauses until you remove data.
4.3 Push notifications
For sync (Android). When you are signed in on Android, have allowed notifications and have at least one reminder turned on, the app asks Firebase for a messaging token and registers it with our server. Only at that point does Firebase create an installation identifier and a messaging token for your device and register them with Google; before that, its automatic start is switched off. After one of your devices syncs, our server asks Google to send a silent message to your other Android devices so they sync too. The message contains no app data and no account details. We also store the time of your last such message, to limit how often it is sent.
When you sign out or turn reminders off, the app removes the token from our server (section 11). It does not delete Firebase's own identifiers from your device; they go when you uninstall the app or clear its data.
On Android and desktop, reminders are scheduled and shown on your device and never go through our server.
For reminders (web app). A browser stops a minimized or closed web app, so it cannot show a reminder on time by itself. When you allow notifications and have at least one reminder on, the app asks your browser for a push subscription. The browser creates it at its push service (Google for Chrome, Edge on Android and most Android browsers, Apple for Safari and Home Screen apps on iPhone and iPad, Mozilla for Firefox, Microsoft for Edge on Windows). The app then sends our server that subscription's address and the times of your reminders for the next 8 days, at most 200. At each time, our server sends an empty message to that address, and the app's background script shows the reminder from a copy kept in your browser.
- What our server and the push service do not get: the text of your reminders, your tasks or any other app data. The message is empty.
- It is not linked to your account: we store no account ID or email with it, and it works the same signed out.
- Each time is deleted once its message is sent. The address goes when no time is left for it: when you turn reminders off, block notifications, use "Reset data", or the push service reports the address invalid.
Legal basis: contract.
4.4 Support and feedback
If you email us, we receive your email address, your message and anything you attach. Why: to answer you and fix problems. Legal basis: legitimate interest, or contract where your request is about your account.
Reporting an AI answer. You can report an agent answer with "Report" under it. You choose a reason (offensive, harmful or unsafe, wrong or misleading, or other) and can add details.
- If you are signed in, the app sends the report to our server (Supabase) and we store it. A report contains: the reason, your details if you added any, the reported answer, your message that the answer replied to, the name of the AI model, the app version, your account ID and the time. Long texts are shortened to a fixed length first.
- A report is not end-to-end encrypted. Unlike your synced data, it is not encrypted on your device first, in either sync mode (Extra privacy included): it travels over an encrypted connection and is stored in a form we can read, because we have to read it to act on it. The app tells you this before you send. The answer and your message can contain anything you or the agent wrote, including details from your app data.
- Once sent, a report cannot be viewed, changed or deleted from the app; write to us for that. An account can send up to 20 reports per 24 hours.
- A report is deleted automatically 21 days after it was sent.
- If you are not signed in, or the report cannot be sent (for example when you are offline), the app opens an email draft to support@crestlume.com instead. It contains the reason, your details, the answer (shortened if it is long), the model name and the app version, and is sent only if you send it. It is then handled like any support email.
Why: to review harmful, offensive or wrong AI answers, act on them (for example by changing the models or instructions the agent uses) and meet the rules of the platforms that distribute or bill for crestlume. Legal basis: our legitimate interest in keeping the agent safe (Art. 6(1)(f)).
4.5 Payments (planned)
When paid plans launch, payments on every platform go through Paddle, which acts as the merchant of record: Paddle is the seller of the subscription, collects your payment details, handles taxes and invoices, and processes refunds. Paddle is an independent controller for the payment data it collects, under its own privacy policy. We never see your full card number.
From Paddle we will receive and store what we need to give you your plan: your crestlume account ID (passed to the checkout so the purchase reaches your account), the plan you bought, subscription status and end date, transaction and customer identifiers, and your email address and country. Legal basis: contract; and legal obligation (Art. 6(1)(c)) for the records tax and accounting law requires us to keep.
4.6 AI credits (planned)
When the agent runs through our server (section 7.2), we will record, per account and period: the AI model tier used, the number of tokens, the credits charged, and the time of each request. Why: to apply your credit allowance for the period, prevent abuse and handle questions about usage. Legal basis: contract; legitimate interest for abuse limits. We will not store the content of your messages for this.
4.7 Crash reports
The app contains a crash reporting tool (Sentry), but it is not switched on in current versions and sends nothing. If we turn it on, we will update this policy first and tell you what it collects and how to turn it off.
5. Encryption: the two sync modes, honestly
Your synced data is always encrypted on your device before it leaves, and it travels over encrypted connections (TLS). The difference between the two modes is who holds the key that unlocks it.
Standard mode (the default for every new account)
The key that unlocks your data is stored on our server, protected by a second key that is also stored on our server.
- Good: you can sign in on a new device with just your email and password and get all your data back. If you forget your password, you can reset it without losing data.
- The trade-off: because both keys are on our server, we could technically decrypt your synced data. So could someone who gets access to our database or a copy of it, or someone who steals a valid sign-in session of your account. This mode protects your data from being read in transit and in our provider's storage, but it is not end-to-end encryption in the strict sense.
- Our promise: we do not access your synced content. We would only do so if you ask us to (for example, to help with a problem) or if the law forces us to.
Extra privacy mode (optional)
You choose a passphrase. Your data key is then locked with that passphrase, and the server copy of the second key is removed.
- Good: we cannot read your synced data, and neither can anyone who gets into our database. When you turn it on, the app re-encrypts all your synced data with a new key. Copies of our database made before that (for example provider backups, if any) still hold the old key and the data as it was then, until those copies expire.
- Each of your devices keeps its own copy of the key so it can sync without asking for the passphrase every time. It is protected as described under "Your devices" below.
- The trade-offs:
- We never see or store your passphrase. If you forget it and lose all your devices, your synced data cannot be recovered. You can still reset the cloud copy from a device that has your data.
- The metadata listed in section 4.2 is still visible to us.
- A short or common passphrase can be guessed by someone who obtains a copy of the encrypted key. Use a long, unique passphrase.
- Turning Extra privacy off puts your existing key back under a server key. From that moment we could technically decrypt all your synced data again, including data you synced while Extra privacy was on.
- Resetting your cloud copy also turns Extra privacy off (the app warns you about this).
Your devices
| Platform | How your local data is stored |
|---|---|
| Android | Encrypted database; the key is kept in the Android Keystore. App preferences (such as language and notification settings) are kept in a separate file that this encryption does not cover. Android backups of the app's data are switched off. |
| Desktop | Encrypted database; the key is kept in a file in the app's data folder, protected by your system's file permissions (not by the system keychain). Anyone who can use your computer account can open it. If you move the database to another folder (for example a cloud-synced one), the key file stays in the app's data folder. |
| Web | Stored in your browser's private storage for the site. It is not encrypted by the app. This includes your app data, the cached sync key, your OpenRouter key and your sign-in session. Anyone with access to your browser profile could read them. Use the web app only on devices you trust. |
6. Deleted items and what stays in the cloud
When you delete an item, its content is erased from our servers the next time that device syncs. We keep a deletion record so your other devices learn about the deletion: a random identifier, the item type, its creation and deletion times and the identifiers of the items it was attached to (for example, the goal a deleted task belonged to). The record is encrypted like your other synced data. These records stay on our server until you:
- use Reset cloud copy (Settings, Sync), which erases the cloud copy and uploads this device's data again (deletion records stored on that device are uploaded again too); or
- delete your account, which erases everything we hold for it.
Some limits:
- Older versions of the app upload deleted items with their content. An updated device erases the ones it holds at its first successful sync after the update. Ones that an older app version uploads after that stay until a device that has never synced your account signs in to it, you reset your cloud copy, or you delete your account.
- A deletion made offline reaches our server only when that device syncs. Devices that have not synced since then still hold the content locally.
- Backups that our hosting provider keeps of the database, if any, and exports or device backups you made yourself keep earlier copies for their own retention period.
7. The AI agent
The Agent tab lets you chat with an AI model that can read and change your app data (create tasks, update goals and so on). The tools run on your device, against your local data. To answer you, the model needs to see your messages and the data it works with, so that content leaves your device.
7.1 Today: your own OpenRouter key
During the beta, the agent works only with your own API key from OpenRouter (OpenRouter, Inc., USA), an AI service that forwards requests to AI model providers.
- Where it goes: from your device directly to OpenRouter, then to the model provider OpenRouter routes to. It does not pass through our servers. We do not receive or see your chats, except an answer you report and your message before it (section 4.4).
- What is sent with each message:
- your message and the whole earlier conversation in that chat (your messages, the agent's answers, and the tool calls and results);
- a snapshot of your current state: date, local time, time zone and UTC offset, language, time format, level, points, coin balance, up to 20 of today's tasks, up to 20 of today's schedule blocks (including events imported from Google Calendar), up to 10 active goals and a few settings (your profile name and email are not included);
- the results of tools the model uses, which can include any of your app data it asks for: tasks, notes, subtasks, goals, stages, habits and check-ins, schedule, rewards, routines, quests, spheres, statistics and settings;
- your OpenRouter key (it identifies your OpenRouter account), the chosen model, and the app's name; and, as with any internet request, your IP address and device or browser information.
- Your contract with OpenRouter: you use your own OpenRouter account, so OpenRouter's terms and privacy policy apply to that data, along with the policy of the model provider. OpenRouter requires its users to be at least 18.
- What OpenRouter and providers may do: by OpenRouter's own terms, it does not store your prompts unless you turn on prompt logging in your OpenRouter account. Model providers have their own rules, and some keep prompts or use them to train their models.
- Which providers the app allows: with every request, the app asks OpenRouter to use only providers that do not collect your data (OpenRouter's
data_collection: denysetting). Providers that, according to OpenRouter, store prompts beyond handling the request or may train on them are then not used. This applies to every model, free ones included, so a model that has no such provider may not be available. The app does not also require zero data retention; you can require it in your OpenRouter privacy settings. - Default model and cost: the app's default model is a paid model, so its requests are charged to your OpenRouter account. You can choose another model, including free ones, in the Agent tab.
- Your key: stored only on your device. It is never synced, exported or sent to us.
7.2 Planned: the agent through our server
When paid plans launch, the agent will by default run through our own server, so you will not need an OpenRouter key. Using your own key will stay available as an option.
- Where it goes: from your device to our server function (hosted by Supabase in the EU), then to OpenRouter (USA) under our OpenRouter account, then to the model provider.
- What is sent: the same content as in 7.1, plus your sign-in token so we know whose allowance to use. Not your OpenRouter key.
- What we do with it: our server passes your messages through and does not store or log their content. It records only usage data (section 4.6). Your local database stays on your device; the server only sees what the app sends for that request.
- Provider restrictions: as with your own key (7.1), we will route requests only to providers that, according to OpenRouter, do not store or train on prompts, and to providers that keep no data where that option exists for the chosen model. We will list the exact settings here when this launches.
- Roles: for this flow, we are the controllers and OpenRouter and the model providers process the data for us.
- Legal basis: contract; legitimate interest for abuse limits.
7.3 Planned: attachments
You will be able to attach images, text files, documents and spreadsheets to an agent message.
- The content of the attachment is sent to the AI model so it can read it, through the same route as your messages (7.1 or 7.2). Images are sent as they are. Documents and spreadsheets are converted to text on your device first, and the full text is sent. Either way, the model provider sees the whole content.
- For images, the model also writes a short text description in the same request.
- After the first answer, the app keeps only the text extract (or the image description) in the conversation and sends that with later messages, not the file.
- The original file stays on your device. When the agent runs through our server (7.2), the attachment passes through it on the way to the model but is not stored there. We never store the original file on our servers. If chat sync is on (7.4), only the text extract is synced.
7.4 Chat history and planned chat sync
Today, agent chats are stored only on your device (apart from answers you report, section 4.4). They are not synced and not included in exports. "Reset data" deletes them; deleting your account does not. You can delete a conversation in the Agent tab. They are also removed from a device when a different account signs in on it.
(planned) On the paid plan you will be able to sync agent chats between your devices. Synced chats (messages and attachment text extracts, never the original files) will be encrypted and stored exactly like your other synced data, under the same key mode (section 5).
7.5 What we do not do
- We do not use your data or your chats to train AI models, and we do not let anyone do so on our behalf. Section 7.1 explains what providers may do under your own OpenRouter account.
- The agent makes no decisions about you that have legal or similarly significant effects. It only acts on your app data when you ask it to.
AI answers can be wrong. See our Terms of Service.
8. Google Calendar (optional, desktop and Android, needs an account)
If you connect Google Calendar, you sign in with Google and grant crestlume access to your calendar list and events (Google's scopes: calendar.events, calendar.calendarlist.readonly, calendar.calendars, plus your email address). The connection belongs to your crestlume account: you connect once, on any of your devices, and every device you sign in on can use it.
- What we do: when you tap "Sync now" in Settings or the refresh button on Schedule, and by itself while Schedule is open (when you open it, when the app comes back to the front, and every few minutes), the app reads events from the calendars you link (title, start and end, whether an event lasts all day, how a repeating event repeats and which of its occurrences were changed or cancelled) and shows them as schedule blocks. A repeating event is kept as one block with its repeat rule, and your device works out its dates; for a rule the app cannot work out itself, it reads that event's dates for the coming year from Google instead. When an event is deleted in Google Calendar, the app removes its block too, except a block you changed in the app whose change has not reached Google yet: that one stays, no longer linked to Google. When you add, change or delete a block in a linked calendar, the app writes that change to Google Calendar; for a repeating event, to the occurrence, the following ones or the whole series, as you choose. It can also create a new calendar with a name you choose. When you ask for it and confirm, it deletes a linked calendar in Google Calendar, with all of its events, for everyone who has access to it. It does so only when Google reports your account as that calendar's owner: never your primary calendar, and never a calendar shared with you, even one you may manage. The app then removes that calendar as described under "Disconnecting" below.
- Where it is stored: the connection is your Google email address, which of crestlume's Google clients issued it, and Google's long-lived token for it (a "refresh token"). It is part of your synced data: encrypted on your device and synced like everything else (section 5). In the standard mode the limits of section 5 apply; with Extra privacy we cannot read the stored copy. Each device keeps it in its local database. Imported events become part of your app data and are synced encrypted the same way.
- What passes through our server: Google's short-lived access tokens last about an hour. To get a new one, your device sends the refresh token to a function on our server, which forwards it to Google together with crestlume's Google client credentials and returns the new access token. When you connect, the same function trades Google's one-time code for the tokens. We keep these client credentials on the server so that no copy of the app has to carry them. The function does not store or log the tokens; the access token stays in your device's memory only. This is a limit of the encryption: while a token passes through, our server could technically read it, with Extra privacy too, and with it reach your Google Calendar. We do not do that. Your calendar events never pass through our server: your device reads and writes them directly with Google.
- Signed out: the app does not use the connection and does not read or write Google Calendar. Sign in to use it again; you do not need to connect again.
- The AI agent: imported events are schedule blocks like any other, so when you use the agent their titles and times can be part of what is sent to the AI model, through providers that do not store or train on prompts (section 7.1).
- Disconnecting, on any of your devices, removes the connection from your account and from all your devices as they sync (it then remains only as a deletion record without the token, section 6), and asks Google to revoke crestlume's access. If the device is offline at that moment, the access stays in your Google account: you can always remove it yourself in your Google Account, Security, "Third-party apps with account access". It also removes the linked calendars and the events imported from them from your app data, on all your synced devices (deleted items are handled as in section 6). Blocks you made in the app stay, including ones the app wrote to Google Calendar, and so does an imported event that holds something only the app has (a change not yet written to Google, a block type, or a link to a task or habit), as a block in no calendar, which the app no longer writes to Google. Such a block keeps the Google event's ID, so linking that calendar again picks it up instead of importing the event a second time. Events imported by app version 0.1.3 or earlier cannot be told apart from your own blocks, so they stay the same way. Removing one linked calendar does the same for that calendar. Disconnecting and removing a calendar delete nothing from Google Calendar; only deleting a calendar in Google, as above, does.
- Legal basis: contract (you asked for the feature).
crestlume's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. We do not use Google user data for advertising, do not sell it, and do not use it to develop, improve or train general AI or machine learning models.
9. Who receives data
We use these service providers. Where they process data for us, they act as our processors under data processing terms.
| Provider | Role | What they receive | Where |
|---|---|---|---|
| Supabase | Database, sign-in and server functions (processor) | Account email, password hash, sessions, IP addresses and device information in logs, encrypted synced data and its metadata, key data (section 5), Google Calendar tokens in transit when a device connects or renews the connection (not stored, section 8), push tokens, web push addresses and reminder times (not linked to an account, section 4.3), AI answer reports (not end-to-end encrypted, section 4.4). Planned: agent requests in transit and usage records. | Data stored in Frankfurt, Germany (EU). Supabase is a company outside the EU and may access data from other countries. |
| Cloudflare | Web hosting, app downloads and desktop updates, domain and network security, captcha (Turnstile), forwarding of our support email (processor); public DNS service for the sign-up email check (section 4.1) | IP address and browser information for each request to our sites and download server; captcha signals; emails you send to support; at sign-up, the domain of your email address and your IP address. | Global network, including outside the EU. |
| Google (Gmail) | Hosts our support mailbox | Emails you send to support@crestlume.com. | Global, including the USA. |
| Resend | Sending sign-in and security emails (processor) | Your email address and the email content (a one-time code). | EU (Ireland) sending region; Resend is a US company. |
| OpenRouter | AI routing. Today: under your own account and its terms (we do not send it anything). Planned: our processor for the server-based agent. | Section 7. | USA. |
| AI model providers (via OpenRouter) | Run the AI model | Section 7. | Varies by provider, often the USA. |
| Google (Firebase Cloud Messaging) | Push messages for sync on Android (processor) | Installation identifier and messaging token of each Android installation that registers for push (section 4.3); silent sync messages with no content. | Global, including the USA. |
| Browser push services (Google, Apple, Mozilla, Microsoft, depending on your browser) | Deliver reminder wake-ups to the web app; independent controllers under your browser's terms | The push address your browser created, our server's IP address, and empty messages at your reminder times (section 4.3). | Global, including the USA. |
| Google (Calendar) | Only if you connect it; under your Google account and Google's terms | Section 8. Your devices talk to Google Calendar directly; our server function sends Google the connection's token with crestlume's client credentials to renew it. | Global, including the USA. |
| Paddle (planned) | Merchant of record for all payments; independent controller | Section 4.5. | UK, with payment partners worldwide. |
We may also disclose data if the law requires it, to protect our rights or users' safety, or to a successor if crestlume is transferred to a company we set up or to a buyer (we would tell you first).
10. Transfers outside the EU
Some providers above are based in, or may access data from, countries outside the European Economic Area, mainly the USA. When that happens, we rely on:
- an adequacy decision of the European Commission, such as the EU-US Data Privacy Framework for providers certified under it, or the decision for the UK; or
- the European Commission's Standard Contractual Clauses in the provider's data processing terms.
You can ask us for more information about these safeguards at support@crestlume.com.
11. How long we keep data
| Data | How long |
|---|---|
| App data on your devices | Until you delete it, use "Reset data", or uninstall the app. "Reset data" also removes agent chats, your OpenRouter key and this device's copy of the Google Calendar connection (your account keeps it). |
| Account, synced data (the Google Calendar connection included), deletion records, key data, push tokens | Until you delete your account. The Google Calendar connection also goes when you disconnect it. Push tokens are normally also removed when you sign out or turn reminders off (a token can remain if the device is offline at that moment, until Google reports it invalid). |
| Web push addresses and reminder times (section 4.3) | Each time until its message is sent, at most 8 days ahead. The address until no time is left for it (reminders off, notifications blocked, "Reset data", or reported invalid by the push service). |
| AI answer reports | 21 days from when you sent the report, then deleted automatically. We delete it sooner when you ask. When you delete your account, your reports stay until then but are no longer linked to your account. |
| Email delivery logs at Resend | For the period set by Resend. |
| Server logs (sign-in and request logs) | For the period set by Supabase for our plan. Some sign-in records may remain for a while after you delete your account. |
| Backups kept by our hosting provider, if any | Until they expire under the provider's schedule. |
| Support emails | Up to 2 years after your request is resolved, unless we need them longer to handle a legal claim. |
| Planned: usage records for AI credits | As long as needed to apply your allowance and answer questions about usage. We will state the exact period when this launches. |
| Planned: payment records | For as long as tax and accounting law requires. |
Data already sent to OpenRouter, a model provider, Google or Cloudflare is kept under their own policies.
12. Security
We encrypt synced data on your device, use encrypted connections, restrict database access so each account can only reach its own data, and require you to confirm it is you before you reset your cloud copy or delete your account. AI answer reports are the exception to on-device encryption (section 4.4). The Google Calendar token passes through our server only in transit, over an encrypted connection, and is neither stored nor logged there (section 8). No system is perfectly secure; the limits are explained in sections 5 and 6. If a breach affects your data and is likely to put you at risk, we will tell you and the supervisory authority as the law requires.
13. Your rights
Under the GDPR you have the right to:
- access your data and get a copy of it;
- correct inaccurate data;
- delete your data;
- restrict how we use it;
- data portability: get your data in a machine-readable format (you can also export your app data yourself as a JSON file in Settings, Data; agent chats are not included in the export yet);
- object to processing based on our legitimate interests;
- withdraw consent where we rely on it, at any time;
- complain to a data protection authority. Ours is the Romanian National Supervisory Authority for Personal Data Processing (ANSPDCP, dataprotection.ro). You can also complain to the authority where you live or work.
To use these rights, email support@crestlume.com from the email address on your account. We answer within one month. We may ask you to confirm your identity. If you use Extra privacy, we cannot decrypt your synced data, so a copy from us would only contain it in encrypted form; use the export in the app instead.
Deleting your account
- In the app: Settings, Sync, Delete account. You will confirm with your password or an emailed code.
- On the web, without the app: app.crestlume.com/delete-account.
- By email: write to support@crestlume.com from the address on your account.
Deleting your account permanently erases your account (email and password), all your synced data including deletion records and your Google Calendar connection, your key data, your push tokens and push timing data from our database. The app also asks Google to revoke crestlume's access to your calendar. It does not erase:
- data stored on your devices: your app data, agent chats and your OpenRouter key stay until you remove them or uninstall the app;
- AI answer reports you sent: they stay, without the link to your account, until they are deleted 21 days after sending. Write to us and describe the report if you want it deleted sooner;
- sign-in and server logs, email delivery logs and any provider backups, until they expire;
- data already sent to OpenRouter, model providers, Google or Cloudflare;
- your Google Calendar permission, if the revoke did not reach Google (for example, the device was offline): remove it in your Google Account, Security, "Third-party apps with account access";
- web push addresses and reminder times (section 4.3), which are not linked to your account: turn reminders off in each browser first, or they go on their own once the last scheduled time passes;
- (planned) payment records we must keep by law, and your data held by Paddle under its own policy. Deleting your account does not cancel a paid subscription: cancel it first in Paddle's portal.
14. Age limit
crestlume is for people aged 18 or older. We do not knowingly collect data from anyone younger. If you believe a minor has created an account, write to support@crestlume.com and we will delete it.
15. Cookies and local storage
The crestlume app does not set cookies. It stores data in your browser or device storage that it needs to work: your app database, your sign-in session (on the web), preferences such as language, layout and notification settings, and when you last opened the app on that device (it times the "come back" reminder). In the web app with reminders on, it also keeps a copy of your upcoming reminders (title, text and time) for its background script (section 4.3). This storage is strictly necessary for the features you use, so it does not need consent. It is not used for tracking or advertising. On Android, once push is registered (section 4.3), the Firebase component also stores its own identifiers on your device.
Cloudflare, which hosts our sites and runs the captcha, may set its own strictly necessary security cookies.
Our website crestlume.com is a static page. It sets no cookies, runs no analytics or tracking and has no forms. Like any website, its host sees your IP address and browser information for each request (section 9). App downloads are served the same way, from our download server on Cloudflare (section 9). If we add analytics, forms or a checkout to the website, we will update this section first.
16. Changes to this policy
We will update this policy when the app changes, in particular when the planned features above launch. We will change the effective date at the top. If a change matters for how your data is used, we will tell you in the app or by email before it takes effect.
17. Contact
Kostiantyn Durlov and Yevhen Hoha, crestlume Strada Negoiul, 500002 Brașov, Romania support@crestlume.com