Privacy
This describes what CDT actually stores today. It is not legal advice.
Account
Sign-in uses Supabase Auth. We keep the email address on your account so you can sign in and so a purchase can be matched to that account. We do not receive or store your password in this app; Supabase Auth hashes it.
On this device
App data is saved first in this browser with Dexie (IndexedDB) so CDT works offline: time logs, activity types, and suggestions; user settings (time and date format, week start, day-start offset, habit history range, and note sort); schedule templates, blocks, settings, completions, and exceptions; journal entries (dated day, month, and year); habit columns and checks; meditation settings and sessions; goals and seasonal goal settings; and named notes (documents, not the journal).
Schedule and meditation settings can include a notifications-on flag. Browser notifications and Screen Wake Lock are on-device permissions, not a push server.
Sync
When you are online, that local data is synced to your Supabase project (Postgres) under your user id, with row-level security so other accounts cannot read it through the app client. The local dirty flag that marks unsynced edits stays on this device; it is not sent to the server.
Payment
A one-time Stripe Checkout payment turns on a license for this account (profiles.has_access). That license unlocks the whole app. Stripe processes the card. We store that you paid (and the email used at checkout) so we can grant access. If the payment is refunded or disputed, we set that license off. We do not store full card numbers. This is not a subscription.
Course video
Opening Additional resources can load an embedded YouTube player (youtube-nocookie.com) so you can watch the licensed course. YouTube may see that request (for example your IP address). You can instead use the “Open on YouTube” link. The video is not stored in this app. Unlisted YouTube is not the license lock; access is gated in this app.
What we do not do
We do not sell personal data. We do not use this app to run third-party advertising.
Your choices
You can change or reset your password while signed in. Signing out ends the session. Clearing this site’s data in the browser removes the local IndexedDB copy on that device.
From Account you can export this account’s non-deleted local rows of those categories (JSON, plus CSV of time logs when that list is small). That file is built on this device and works offline. Notes can also be downloaded as .md or .txt from Notes; that is not a second Account exporter. You can also delete the account after typing your email or “delete my account”; that removes the Auth user (cloud rows cascade from the profile) and clears this account’s local records here. It is not a subscription cancel.