Privacy Policy
Effective date: October 23, 2026
This Privacy Policy explains how Michael Prince, a sole proprietor trading as DayKeep ("we", "us", or "our"), collects and uses your information when you use DayKeep (the "Service"). We aim to collect only what we need to run the Service.
1. Information we collect
- Account information: the email address you register with and a securely hashed password. We never store your password in plain text. If you sign in with Google, we receive your email address and a Google account identifier from Google instead of a password. We never see or store your Google password.
- Wait-list email address: while sign-ups are closed you can join a wait list. We store only the address you give us, so that we can send you an invitation when a place opens. Joining sends you no mail at all, not even a confirmation, and the address is not added to any marketing list. Ask us and we will remove it.
- DayKeep Messaging launch email: if you ask to be told when DayKeep Messaging launches, we store the address you give us and the date you gave it. We use it once, to send one email when the app is ready, and then delete the whole list. Joining sends you no mail, and the address is not added to any marketing list. To be removed sooner, write to [email protected] and we will delete it.
- Content you create: your lists, tasks, subtasks, notes, file attachments, and any event or workout data you log. This is the data the Service exists to store for you.
- Technical and log data: limited information such as IP address, timestamps, and basic request details, used to operate, secure, and troubleshoot the Service (for example, rate limiting and abuse prevention).
- Billing information: if you buy a paid plan, your payment details are collected directly by our payment processor, Stripe (see "Service providers" below). We store only your subscription status and a Stripe customer reference, never your card number.
2. Cookies
We use first-party cookies only. We do not use advertising
cookies, analytics cookies, or any cross-site tracking. Our three cookies below are all
HttpOnly, meaning no script on the page can read them:
session: keeps you signed in. It is a persistent cookie so that an installed app survives a device restart without asking you to sign in again.google_oauth_state: set only when you begin a Google sign-in. It is limited to the sign-in path, expires after 10 minutes, and is deleted the moment the sign-in finishes. It protects that sign-in against cross-site request forgery and, when you accept an invitation with Google, carries that invitation through the sign-in.oauth_consent: set only while you are on the screen approving another app or agent's request for access to your account. It is limited to the approval path, expires after 10 minutes, and is cleared when you finish.
Cloudflare's security cookie. Cloudflare, which carries traffic between
your browser and our servers, runs a small check in your browser to tell people from automated
bots, and records the result in a cookie named cf_clearance. It is also
HttpOnly, lasts up to a year, and is used only for that check, never for
advertising or analytics.
Separately, the app stores your data and preferences locally in your browser (local storage and IndexedDB) so it keeps working offline. That is on your device, not a cookie, and clearing your browser data removes it.
3. How we use your information
We use your information to provide, maintain, and secure the Service; to sync your data across your devices; to send you transactional email such as account verification, password resets, and reminders you enable; and to comply with legal obligations. We do not use your task content for advertising.
4. Visitor counting
We count unique visitors so we can see whether the Service is being used. This is our own counting: there is no analytics cookie, and no profile is built.
- When you are signed in, the count keys on your account.
- When you are not signed in, it keys on a one-way hash of your IP address mixed with a secret that rotates every day. That makes a day's visitors countable but deliberately unlinkable from one day to the next: we cannot tell that yesterday's anonymous visitor and today's are the same person, and we chose that trade-off on purpose.
Page speed. Separately, we use Cloudflare Web Analytics to measure how quickly our pages load and respond to you. Each page loads a small script from Cloudflare, which reports the page's address, the page that linked to it, your browser and operating system, and timings such as how long the main content took to appear. It uses no cookies or local storage and builds no profile of you. Cloudflare handles it under its own privacy policy at cloudflare.com/privacypolicy.
5. Content loaded from other services
Three parts of the app cause your browser or our server to contact someone else:
- Page speed (Cloudflare). Every page loads Cloudflare's Web Analytics
script from
static.cloudflareinsights.com, so your browser contacts Cloudflare directly and Cloudflare receives your IP address. Section 4 says what it measures. - Exercise videos (YouTube). Exercises can carry a video. Thumbnails load
from YouTube's image servers, and playing one loads a YouTube player in privacy-enhanced
mode (
youtube-nocookie.com). When that happens, your browser contacts Google directly and Google receives your IP address and the video requested, under its own privacy policy. Nothing about your tasks or notes is sent. - Weather. Forecasts come from the US National Weather Service. Those requests are made by our servers, not your browser, so your device and IP address are never exposed to them; only the location whose forecast is needed.
6. Links you choose to share
If you publish a share link for a list, a task or a note, anyone who has that link can read what you shared, without signing in. That is what the feature is for, but it means the decision to make something readable is yours, not ours. You can revoke a link at any time, which stops it working immediately.
7. Apps and agents you connect
You can issue API tokens, or approve another application or AI agent, to work with your data on your behalf. Anything you grant can read (and, if you allow it, change) the data covered by that grant, and what it then does with the data is governed by that party, not by us. You can see and revoke every token and connected app from your settings at any time.
8. DayKeep Messaging, DayKeep chat and Google Drive
DayKeep Messaging, our Android messaging app, can send a video that is too large for a picture message (MMS) as a link to a copy in your own Google Drive. This is optional, and it is off until you connect Google Drive, either in Messaging under Settings → Sending → Google Drive, or when you send a video too large for a picture message.
- What it can reach: Messaging asks Google only for the
drive.filepermission, which lets it see the files it creates and nothing else in your Drive. It keeps those files in a folder named "DayKeep Messaging videos". - What happens to a video: the video you choose is uploaded from your phone straight to Google Drive, shared so that anyone with the link can view it, and the link is sent in your message. Nothing passes through or is stored on DayKeep's servers.
- While a video is sending: your phone keeps the recipients, any text you typed with the video, a re-encoded copy of the video, a still frame from it and the upload's progress, and deletes them once the message is sent or you cancel. Cancelling after the upload also deletes the copy in your Drive. The message itself goes out as an MMS through your carrier, carrying the still frame and the link.
- What the app keeps: the email address of the Google account you connected, on your phone. It never stores a Google access token; Google Play services holds those.
- Turning it off: Disconnect, in the same settings, revokes Messaging's access to your Drive. Videos you have sent stay in your Drive until you delete them.
If you connect DayKeep Messaging to your DayKeep account, we store your Messaging settings and the GIFs you save as favourites on DayKeep's servers, so they sync between your devices. Apart from DayKeep chat, below, we never receive your messages, your contacts or your phone numbers. Disconnecting Messaging keeps this data; "Delete Messaging data from DayKeep" in the app, or deleting your DayKeep account, removes it. If you never connect, nothing from Messaging reaches our servers.
DayKeep chat is an invite-only feature we are testing. If it is turned on for your account, Messaging can send messages, photos, videos and voice messages to other DayKeep chat users through DayKeep's servers. Each one is encrypted on your phone before it leaves, and only the devices of the people in the conversation hold the keys to read it. We cannot read your chat messages, and we do not log them.
- What we store: each message and attachment, encrypted, only until every device it was sent to has collected it, and never longer than 30 days. While a message waits, we also know which account sent it, which devices it is for, when it was sent and its size. For each of your chat devices we keep its name (such as "Galaxy S23"), its public keys, and when it was added and last used.
- Who can find you: other DayKeep chat users can see your name and email address, so they can start a conversation with you.
- Your devices: on the website, Settings, Security, DayKeep Chat Devices lists your devices and lets you remove one, for example a lost phone. A removed device stops receiving messages.
- Backups: encrypted messages can remain in our database backups until those age out (section 13). They are just as unreadable to us there.
DayKeep's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
9. Contacts
DayKeep Contacts is an address book in your DayKeep account. If it is turned on for your account:
- What we store: the people you add or import and the details you give for them: names, company and job title, phone numbers, email addresses, postal addresses, links, birthdays, anniversaries, notes, and the tags you put on them. They are kept on DayKeep's servers so they sync between your devices, and only you can see them. We never sell them, and we never use them to contact the people in them.
- Importing and exporting: a contacts file you import (a Google Contacts export, for example) is read on our servers to add or update your contacts. The file itself is not kept. You can export your contacts as a file at any time.
- On your Android phone: the DayKeep app keeps your DayKeep contacts in the phone's Contacts, under a DayKeep account, and sends the changes you make to them back to DayKeep. It keeps them in step by reading only contacts saved under that DayKeep account. The app reads the phone's other contacts (your Google account, your SIM card and the rest) only when you tap Copy contacts from this phone. It shows you what it found, and sends them to your DayKeep account only when you confirm the copy. It never changes or deletes anything in those other accounts. The app keeps no other copy of your contacts. Turning Contacts off in the app, or removing the DayKeep account from the phone, deletes them from the phone; they stay in your DayKeep account.
- Birthday reminders: if you turn on a reminder for someone's birthday, we send a notification on the day that names them. It goes through your browser's or phone's push service, encrypted so that only your device can read it.
- Apps and agents: an app or agent you connect can read or change your contacts only if you give it access to Contacts (section 7).
- Deleting: a contact you delete disappears from all your devices at once. Its details stay on our servers for 30 days, so that a change made on another of your devices in that time can bring it back, and are then erased. After that we keep only an internal identifier, so that your devices know it was deleted. Deleting your DayKeep account removes all your contacts.
10. DayKeep Passwords and the browser extension
Your password vault is encrypted on your device. The DayKeep apps for Windows and Android keep your vault on the device (on Windows, in a file on your PC), encrypted with a key that only your vault passphrase, your recovery code, or the device's own unlock can open: Windows Hello on a PC, or your fingerprint or screen lock on a phone. We never receive your passphrase.
Sync. If you connect the app to your DayKeep account, it uploads the vault already encrypted on your device, and downloads it the same way on your other devices. Our server stores what it is sent and cannot decrypt it: it does not see the sites, usernames, passwords or notes in your vault. It does see what it needs to sync: your account, how many items there are, what kind each one is (a login, a card, a note and so on), their sizes, and when they changed.
Breach check. The DayKeep app for Android can check whether your saved passwords have appeared in known data breaches. It is off until you turn it on. When it runs, your phone sends the first five characters of each password's SHA-1 hash (never the password, and never the rest of the hash) straight to the Pwned Passwords service run by Have I Been Pwned (api.pwnedpasswords.com). The service answers with every hash it knows that starts with those characters, padded so the size of the answer says nothing either, and the app does the matching on your phone. Have I Been Pwned sees your phone's internet address and those five characters, as any site you visit would, but not which password was checked or whether it was found. The check goes from your phone directly to that service; our server takes no part in it.
The browser extension ("DayKeep" in the Chrome Web Store) fills and saves logins using the DayKeep app on the same computer.
- It does not store your passwords and has no server of its own: it makes no network requests at all.
- It sends the DayKeep app on your PC only what filling and saving need, and sends nothing anywhere else: the address of the site you are on, to find its logins; what you type in its search box; and the page's title when you save a login or use Auto-Type. It keeps no history of the sites you visit.
- When you fill a login, the app hands that one username and password to the extension, which puts them into the page's form. When you save one, the extension reads it from the form and hands it to the app.
- To pair with the app, it keeps a key in your browser profile. It never stores your vault passphrase.
- None of this data is sold, used for advertising, or used for anything but filling and saving your logins.
11. Service providers (sub-processors)
We share limited information with service providers who process it on our behalf, only as needed to run the Service:
- Resend: sends our transactional email (verification, password reset, and notification messages). Your email address and message contents are processed to deliver that mail.
- Stripe: processes payments for paid subscriptions. Checkout and billing management happen on Stripe-hosted pages, so your card details go directly to Stripe and are never sent to or stored on our servers. We receive only what we need to operate your subscription (such as your subscription status and a customer reference), and Stripe handles your payment information under its own privacy policy at stripe.com/privacy.
- Google: if you choose to sign in with Google, Google authenticates you and tells us your email address and an account identifier. Google's handling of that is covered by its own privacy policy at policies.google.com/privacy. Exercise video playback also involves Google, as described above, and so does Google Drive if you connect it in DayKeep Messaging (section 8).
- US National Weather Service: receives the location a forecast is needed for, from our servers. No account information is sent.
- Cloudflare: carries traffic between your browser or app and our servers, and stores the files you attach and our database backups in its R2 storage. The backups are encrypted before they leave our server.
- Hosting and infrastructure: our servers and database, which store your account and content so the Service can operate.
These providers are bound to use the information only to provide their services to us.
12. We do not sell your data
We do not sell or rent your personal information, and we do not share it with third parties for their own marketing.
13. Data retention and deletion
We keep your information for as long as your account is active. You can delete individual data from within the app, or request deletion of your entire account by emailing [email protected]. When you request deletion, we remove your personal data from the live Service within 30 days. Copies may survive in our database backups: on our own computers for about a week, and encrypted in Cloudflare R2 storage for up to a year (daily copies for 30 days, then one a month). They are pruned automatically, and deletion reaches those copies when they age out rather than immediately.
14. Your choices and rights
You can access and update your data in the app, export it at any time using the built-in export feature, and request correction or deletion by contacting us. Depending on where you live, you may have additional rights under applicable privacy laws; we honor those rights as required.
15. Children's privacy
The Service is not directed to children under 13, and we do not knowingly collect personal information from them. Family plan seats are for household members invited by an adult account owner. If you believe a child has provided us information, contact us and we will delete it.
16. Changes to this policy
We may update this Privacy Policy from time to time. When we make material changes, we will update the effective date above and, where appropriate, notify you.
17. Contact
Questions about your privacy or this policy? Email us at [email protected].