Privacy Policy
Effective date: 18 October 2026
This policy explains what personal data Keepup ("the app", "we") processes, why, for how long, who we share it with, and the rights you have. It applies to the Keepup web app at its published address and to any installed version of it.
1. Who is responsible (data controller)
Keepup is operated by Ilya Naumenko, an individual, who is the controller of the personal data described here.
Contact for all privacy questions and requests: naumchas00@gmail.com
2. Data we process
We process only the data the app needs to work.
Account (from you, or from Google if you sign in with Google)
- Your email address and a unique account identifier.
- Your password, if you sign in with email and password. Our sign-in provider (Supabase Auth) stores it only as a one-way hash, never in plain text.
- If you sign in with Google: the profile details Google shares (your name, email address and a link to your Google profile picture) are kept with your login. Keepup uses only the name, to suggest a display name when you start.
Profile and settings (from you)
- Display name, avatar emoji and colour, time zone, first day of the week, the language you choose (English, Russian or Hebrew), and what you use Keepup for (optional).
- The daily reminder hour, Pause all notifications, the celebrations setting (full or subtle), and the dates you finished onboarding, accepted this policy and last used Reset my data.
- Notification settings for each kind of notification (on or off; sound, silent or Inbox only) and for each habit (muted, reminders on or off, reminder time).
Habits and activity (from you, and calculated by the app)
- Habits you create: title, emoji, category, schedule, start and end dates.
- Check-ins with their date and time (including when you tapped, for check-ins made offline), pauses, rest days, completed and missed periods, and streaks.
- Points (XP) and how you earned them, levels, badges, weekly and monthly recaps, and which celebrations you have seen.
Groups (from you and other group members)
- Groups you create or join: name, kind, avatar, time zone and first day of the week; your membership, role and when you joined or left.
- Invite links (who made them and when they expire), group habits, approvals, and the cheers and preset nudges you send and receive.
Children's profiles (from the parent or guardian who adds the child, see section 9)
- Nickname, avatar emoji and colour, and the chosen kid view theme.
- Boy or girl, if the parent or guardian chooses to set it (optional).
- The child's habits and check-ins (and whether the child tapped it), stars, garden progress and treat goals.
- Points, levels and badges the app keeps for the child behind the scenes; children never see them.
Notifications (when you allow them)
- Your Inbox: the notifications shown in the app.
- For each device you turn on push notifications for: the push address and encryption keys your browser gives us to deliver notifications, and your browser's user-agent string (it says which browser and operating system you use, so Settings can name the device).
Demo (when you choose "Try a demo with sample habits")
- An anonymous demo login with sample data and anything you add to it. It has no email address, and it is deleted after 24 hours (section 6).
Usage, events and error reports (automatically, when you use the app)
- On our servers, for each request: your account ID and email address, the page or action, the addresses of the requests the app makes to the database (which contain the IDs of habits, children and groups), timings, error messages, your browser's user-agent string and the page you came from.
- On our servers, for each action (signing up, signing in and out; opening the start page while signed out (a count only); starting the demo; finishing onboarding; creating, editing, archiving, restoring, finishing, restarting or deleting a habit; checking in or undoing a check-in, online or offline; adding or resetting a child, adding a child's habit, setting a treat goal or marking it received; setting reminders and turning push notifications on or off; creating a group, making an invite link, joining or leaving a group, removing a member; cheering, nudging, approving or declining; exporting or resetting your data; deleting your account): an event with your account ID and email address and the details of that action. Depending on the action, the details are: a habit's ID, title, category and schedule; a child's ID and nickname; a group's ID and kind (never its name) and your role when you join; the IDs of a check-in, a treat goal or the earlier habit a restarted one comes from; the account ID of the person you nudged (and the kind of nudge) or removed from a group; how you signed in (password or Google); whether you approved or declined; the reminder setting, hour or time; the number of stars in a treat goal; for a check-in, its status, whether the child tapped it and the points it earned; whether an offline check-in reached our servers; and whether the action worked, was refused (and why) or failed (with the error message). When you sign up, sign in or start the demo, the event also records your IP address and the country, region and city it points to (provided by our hosting provider, Vercel). For each sign-up and demo start on Keepup, we also get an email alert with your email address (or the demo login's ID), that IP address and the country and city it points to.
- In your browser, when error and speed reporting is switched on for the Keepup site you use, on every page (also before you sign in): the screens you open; the full address of each page (which can contain the IDs of habits, children and groups); errors in the page and the error, warning and info messages in the page's console, with their technical details; page speed measurements (Web Vitals, which name the part of the page involved, such as the button in the slowest tap) and the address and timing of each request the page makes; your browser's name and version, user-agent string, operating system, language, whether it's a phone, and the window size; and a random session ID (section 10). On the app's signed-in screens, also your account ID, your email address (a demo login has none) and whether it is a demo login. Your browser sends these reports straight to Grafana Labs, so Grafana Labs also receives your IP address, as any website you connect to does.
- We don't record what you type or a log of your taps and clicks. Passwords, sign-in codes, session tokens, invite-link tokens, cookies and keys are removed before anything is sent, on our servers and in your browser. All of this goes to Grafana Labs (section 5) and is kept for 14 days.
Technical data (automatically, by our hosting providers)
- IP address, browser and device information, timestamps and error details in server logs, and the session cookies needed to keep you signed in.
- A sign-in history kept by our sign-in provider (Supabase Auth): sign-ups, sign-ins, sign-outs and password changes, with your account ID, email address and the time. It is deleted when you delete your account.
We do not collect photos you take, precise location, contacts, health records from other apps, payment data, or advertising identifiers. We use no advertising services, and no analytics services other than the usage reports to Grafana Labs described above. We don't track you on other sites.
3. Why we process it (purposes and legal bases)
- Providing the app (account, habits, check-ins, streaks, groups, recaps, rewards, the demo). Data: account, profile and settings, habits and activity, groups, children's profiles. Legal basis: performance of a contract (GDPR Art. 6(1)(b)), i.e. providing the service you signed up for.
- Children's profiles. Data: the child's profile data. Provided by, and processed on the instruction of, the parent or guardian as part of the service; see section 9.
- Push notifications and reminders. Data: push device data and notification settings. Legal basis: consent (Art. 6(1)(a)). You turn notifications on, and can turn them off at any time.
- Sign-in emails (confirming your address, resetting your password). Data: your email address. Legal basis: performance of a contract (Art. 6(1)(b)).
- Security, abuse prevention, keeping the service working, finding and fixing errors, and learning which screens and features are used and where people get stuck, to improve the app. Data: technical data; usage, events and error reports. Legal basis: legitimate interests (Art. 6(1)(f)) in a secure, working service that gets better.
- Backups for disaster recovery. Data: all app data, encrypted. Legal basis: legitimate interests (Art. 6(1)(f)) in not losing your data.
- Answering your requests. Data: your messages and the data needed to act on them. Legal basis: legal obligation (Art. 6(1)(c)) and legitimate interests.
We do not sell personal data, do not use it for advertising, and do not make automated decisions that have legal or similarly significant effects on you.
4. Who can see your data inside the app
- Private habits and their check-ins are visible only to you.
- Group data (group habits, check-ins on them, approvals, cheers, nudges, your display name and avatar) is visible to the members of that group.
- Children's profiles are visible to the adult members of the group the child belongs to.
- Access is enforced in the database itself (row-level security), not only by the app's screens.
- The operator (section 1) can see the usage, events and error reports described in section 2, to keep Keepup working, fix problems and improve it.
5. Service providers (processors) and international transfers
We use these providers to run Keepup. They process data only on our behalf, under their data-processing terms.
- Supabase: database, sign-in, real-time updates, scheduled jobs. Where: EU (Frankfurt, Germany).
- Supabase Edge Functions: sending push notifications. Where: Supabase's edge network, which may run outside the EU.
- Vercel: hosting the web app and serving pages. Where: EU (Frankfurt) for the app's server functions; its global network may route and cache requests worldwide.
- Grafana Labs (Grafana Cloud): receiving and storing the usage, events and error reports described in section 2. From our servers: your account ID and email address, habit titles, children's nicknames and IDs, what you did in the app, and the IP address, country, region and city of each sign-up, sign-in and demo start. From your browser, when error and speed reporting is switched on: the screens you open, page errors, speed measurements, browser and device details, your IP address and, on the app's signed-in screens, your account ID and email address. Passwords and keys are removed. Kept for 14 days. Where: EU (Germany).
- Google: "Sign in with Google" (only if you choose it), sending our sign-in emails (address confirmation and password reset) through Gmail, and keeping the sign-up and demo alerts we receive in our Gmail mailbox (section 6). Where: global.
- GitHub: running the nightly backup job, and storing the encrypted database backups in a private repository. Where: United States.
- Browser push services (for example Apple, Google, Mozilla): delivering push notifications to your device; the message content is encrypted end to end. Where: global.
Where data is transferred outside the EU/EEA (for example to the United States), it is protected by the provider's safeguards: the EU–US Data Privacy Framework where the provider is certified, or the European Commission's Standard Contractual Clauses.
6. How long we keep data
- Account, profile, habits, groups, children's profiles: until you delete them or delete your account.
- Points (XP), levels and badges: until you use Reset my data or delete your account.
- Inbox (in-app notifications): 60 days.
- Records that a weekly or monthly recap was already sent (no content): 62 days.
- Push devices: until you remove the device in Settings or sign out on it, until the push service tells us the device is gone, or until you delete your account.
- Group invite links: they work for 7 days or until revoked. The invite record stays with the group until the group is deleted.
- Demo logins ("Try a demo with sample habits"): deleted automatically, with everything in them, after 24 hours.
- Usage, events and error reports (Grafana Labs): 14 days.
- Email alerts about a sign-up or demo start: in our mailbox (Gmail) for up to 90 days.
- Encrypted backups: 30 days on a rolling basis; deleted data disappears from backups within 30 days.
- Server logs held by our providers: according to the provider's retention, typically days to a few weeks.
- Sign-in history (Supabase Auth): until you delete your account.
When you delete your account, your personal data is deleted from the live database immediately, your sign-in history included, and from backups within 30 days. Usage, events and error reports already sent expire after 14 days. Group habits you created stay with the group, without your name; your own check-ins on them are deleted. A group in which you are the only member is deleted, together with its children's profiles. If you were the last admin of a group with other members, admin rights pass to the longest-standing member.
7. Your rights and controls
In the app, at any time:
- Export my data (Settings): a copy of your data as a JSON file. It includes the children's profiles of groups you are an admin of.
- Reset my data (Settings): deletes your private habits with their check-ins, your points, levels and badges, and your Inbox. It keeps your account, settings, groups, children, and your check-ins in group habits, which are part of the group's history.
- Delete account (Settings): deletes your account and personal data straight away, as described in section 6. Before you confirm, the app tells you which groups will be deleted and who becomes admin.
- Change your password by email: "Forgot password?" on the sign-in page.
- For a child (on the child's page): any adult member of the child's group can correct the child's profile or export the child's data; a group admin can reset the child (keeping only the nickname and avatar) or delete the child's profile.
Depending on where you live, you also have the right to:
- access your data and get a copy (the export above);
- correct inaccurate data (in the app, or by contacting us);
- delete your data (Delete account above);
- restrict or object to processing based on legitimate interests;
- data portability (the export above is machine-readable);
- withdraw consent at any time, for example by turning off notifications; this does not affect earlier processing;
- complain to a data protection authority: in the EU, the authority of your country; in Israel, the Privacy Protection Authority.
To exercise a right that the app doesn't cover directly, write to naumchas00@gmail.com. We answer within one month. We may need to confirm it's really you before acting.
8. Security
- Encryption in transit (HTTPS) everywhere.
- Access rules enforced in the database (row-level security), with automated tests.
- Only the minimum keys in the browser; administrative keys never leave the server.
- Passwords, sign-in codes, session tokens, invite-link tokens and keys are removed from usage, events and error reports before they leave our servers or your browser, with automated tests.
- Encrypted backups.
No system is perfectly secure. If a personal data breach is likely to put you at risk, we will inform you and the competent authority as the law requires.
9. Children
- Own accounts: Keepup accounts are for adults aged 18 or older.
- Anyone under 18 can appear in Keepup only as a child profile added by a parent or legal guardian who is an admin of a group. By adding a child, the parent or guardian confirms that they have parental responsibility and agrees to the processing described here for that child.
- What a child profile contains: a nickname and an avatar emoji (never a photo, full name, birth date or contact details), plus the child's habits, check-ins, stars, garden and treat goals. A parent or guardian may also, optionally, set boy or girl for the child. It is used only to choose the right words in Russian and Hebrew, and can be changed or cleared at any time.
- Who sees it: only the adult members of the child's group. Children don't have their own login, can't message anyone, and can't be found by other users. Like other app data, a child's data is processed by our service providers (section 5); the usage reports include the child's nickname when the child is added (with the habits added at the same time) and for each check-in made for the child, and the kid view's screens are reported like any other, with the child's ID in the page address.
- Control: any adult member of the child's group can view, export or correct the child's profile at any time from the child's page; a group admin can reset or delete it; anyone can also ask us by contacting us.
- Accidental accounts: if we learn that an account belongs to someone under 18, we will delete it or, with a parent's agreement, turn it into a child profile.
10. Cookies and storage on your device
- We use only strictly necessary cookies: to keep you signed in, to protect the sign-in flow, and to remember your chosen language.
- A language cookie remembers the language you chose on this device, so the app opens in it.
- The app keeps a few small settings in your browser's local storage: tips and cards you have already seen, the kid view's sound setting, and which account the saved pages below belong to.
- Offline check-ins: a check-in you make without a connection is kept on your device (in the browser's IndexedDB) until it reaches our servers, then removed from the device.
- Saved pages: the app's offline page, this policy, the app's scripts, and your last Today page and kid view are kept in the browser's cache so they open without a connection.
- When you sign out, waiting check-ins are sent first (if some can't be sent, you are asked before they are dropped), then the saved pages and waiting check-ins are removed from the device. Saved pages are also removed when a different person signs in on the same device.
- Error and speed reports (when switched on, section 2): a random session ID, kept in the browser's session storage (not a cookie) so that the reports from one visit can be grouped together. It is removed when you close the tab.
- We use no analytics, advertising or tracking cookies, so no consent banner is needed for them.
11. Changes to this policy
If we change this policy in a meaningful way, we will say so in the app's What's new before the change takes effect. The effective date at the top always shows the current version.
- 18 October 2026: you can choose the app's language (English, Russian or Hebrew), saved with your profile and in a cookie on your device; a parent or guardian can optionally set boy or girl for a child, used only to choose words in Russian and Hebrew (sections 2, 9 and 10).
- 12 October 2026: each sign-up and demo start also sends us an email alert with your email address or demo ID, IP address and its country and city, kept up to 90 days (sections 2, 5 and 6).
- 11 October 2026: sign-ups, sign-ins and demo starts also record your IP address and the country, region and city it points to (sections 2 and 5).
- 8 October 2026: added the events the app records for each action and the error and speed reports your browser sends (section 2), and what Grafana Labs receives from both (section 5).
12. Additional information for users in Israel
Keepup is operated from Israel. Data is processed in accordance with the Israeli Privacy Protection Law, 5741-1981, and its regulations (including the Information Security Regulations and the 2024–25 amendment), in addition to the GDPR where it applies. You may request access to and correction of your data as provided by that law, using the contact above.
13. Contact
Ilya Naumenko · naumchas00@gmail.com
See also the Terms of use.