Privacy Policy
Last Updated: 8 October 2026
This Privacy Policy explains how SubKeep ("SubKeep", "we", "us", or "our") handles information through the SubKeep browser extension ("Extension") and the SubKeep website ("Website").
The Extension is designed to keep Google Keep data and SubKeep configuration local to your browser. The Website separately uses services for access transitions, accounts, email verification, optional trials, support, analytics, Pro licensing, and payments. The account experience described here supports extension 0.0.7.1 and later. Older releases may continue using activation codes under their installed behavior.
1. The SubKeep Extension
Local extension data
The Extension uses the browser-provided chrome.storage.local API to store data needed for its features. This may include:
- Folder and label configuration created within the Extension;
- Selected Google Keep label identifiers;
- Nested label relationships;
- User interface state;
- The active Google Keep account email address or account marker detected from
the rendered Keep page, stored locally to keep Extension settings separated
by account;
- Account-scoped Extension settings;
- A SubKeep Pro activation code or account session credential, browser activation identifier, signed access grant, reminder preferences, trial or transition dates, and validation timestamps when applicable; and
- A randomly generated Extension client identifier used only in hashed form for error reporting when that reporting is enabled.
For the automatic five-day transition introduced in version 0.0.7.2, the Extension sends a randomly generated installation identifier and a fixed transition identifier to the account service. No email is required. The service stores a one-way hash of those identifiers with immutable start and expiry times so repeat requests for that installation return the same deadline. The signed response allows the Extension to verify the deadline without sending Google Keep content, labels, hierarchy, or the locally detected Google account identity.
Google Keep content, the locally detected Google account email or marker, and
SubKeep hierarchy data remain in your browser profile and are not stored on
servers operated by us. When you use accounts or Pro licensing, the Extension sends the SubKeep email you explicitly provide, verification or session credentials, and a profile identifier to our account service to verify access. Legacy versions send an activation code and browser activation identifier. These requests do not include Google Keep note content, label names, hierarchy, or the locally detected Google account identity. A SubKeep billing email is separate from the locally detected Google account. Uninstalling the Extension may cause the browser to remove locally stored data.
Interaction with Google Keep
The Extension interacts with the Google Keep interface within your authenticated browser session. It does not request access to your Google account through Google APIs, intercept network traffic, or store copies of your Google Keep notes on servers operated by us.
Optional error reporting
Some production builds may use Sentry to receive sampled technical error reports. If enabled, a report may include:
- Error messages and stack traces;
- Extension version and runtime environment;
- The part of the Extension or command associated with the error; and
- A one-way hash of a randomly generated local client identifier.
The Extension is configured to remove request and user objects before sending an event and is not intended to send Google account details, note content, or label names. Error reporting remains disabled in builds that do not include a Sentry connection setting.
Sentry processes this information under its Privacy Policy.
2. Website Feedback and Release Updates
When you use the Website form, we collect the information you choose to provide:
- Your email address;
- Your feedback or message, if provided; and
- Whether you explicitly requested SubKeep release updates.
The form requires either a message, a request for release updates, or both.
Feedback
We use your email address and message to review your feedback, respond when appropriate, improve SubKeep, and prevent abuse. Form submissions are processed and stored by Formspree under its Privacy Policy.
Release updates
Release updates are optional. Sending feedback does not subscribe you automatically. We add your email address to a release-update list only when you select the release-updates checkbox.
Formspree records your selection with the form submission. We currently maintain the release-update list manually and use it only to send occasional SubKeep release announcements. You may withdraw your request at any time by contacting us or replying to a release email.
3. Website Analytics
The Website uses Vercel Analytics to understand aggregate Website usage and improve the Website. Vercel may process limited technical and interaction information needed to provide this service. We do not use Website analytics to access Google Keep content or Extension data.
Vercel processes this information under its Privacy Notice.
4. Accounts, Trials, Pro Licensing, and Payments
Free extension use does not require a SubKeep account. When you choose to create or sign into one, we process your explicitly supplied email, verification-code challenges, session records, trial dates, profile identifiers and names, access status, and associated order records. We use this information to verify identity, provide the selected trial or subscription, enforce the three-profile allowance, recover existing purchases, and prevent abuse. Sign-in alone does not start a trial. One recorded trial per verified account prevents ordinary reinstall or profile resets from starting another trial.
Vercel hosts the Website and forwards account and transition requests to our Cloudflare Worker. Cloudflare D1 stores account, session, trial, profile, anonymous transition, order, and delivery-processing records. The service uses verification-code, session-token, and transition-installation hashes, limited security and rate-limit records including network addresses, and operational identifiers. Expired transition records are retained to prevent the same anonymous installation from obtaining another transition. Cloudflare processes information under its Privacy Policy.
ForwardEmail delivers verification and essential account messages and forwards support and billing messages to us. It processes recipient addresses, message content, and delivery information. Verification-code message bodies are temporary and cleared after delivery or expiry by the account service. These transactional messages do not subscribe you to marketing. ForwardEmail processes information under its Privacy Policy.
New subscriptions use Stripe Managed Payments, sold through Link. Stripe and Link process payment details, transaction emails, and order management. SubKeep receives the customer, subscription, invoice, refund, and payment-status information needed to provide product access and support; the Extension does not collect card details. Existing subscriptions retain their original Stripe billing arrangement. Stripe processes information under its Privacy Policy; Link provides its Privacy Policy.
Existing activation codes remain supported. Older versions may store browser activation identifiers in Stripe subscription metadata; the new service migrates these to its account registry. Linking an existing purchase and accessing its financial records require verified ownership, not possession of an activation code alone. Label names, local hierarchies, and notes are never uploaded to these commerce services.
5. Cookies and Similar Technologies
The Extension does not use advertising cookies. The account Website uses a secure HttpOnly session cookie for sign-in; the Extension uses a separate revocable account session. Session credentials expire independently of paid access and can be revoked. Our providers may use cookies where needed for security, payments, and their services. Blocking essential cookies can prevent account sign-in. Signing out of the Website does not delete local labels or automatically sign out a separate Extension session.
6. How We Use and Share Information
We use information only for the purposes described in this Policy, including:
- Operating and improving SubKeep;
- Responding to feedback and support requests;
- Sending release updates when you consent;
- Diagnosing technical errors;
- Understanding aggregate Website usage;
- Processing Pro subscriptions and validating license access; and
- Protecting the Website and forms from spam or abuse.
We do not sell your personal information. We share information with service providers only as needed for the services described above, or when required by law, necessary to protect legal rights, or needed to prevent harm or abuse.
7. Retention and Security
Locally stored Extension data remains in your browser until you remove it, reset the Extension, or uninstall the Extension.
Website submissions, error reports, subscriber records, analytics information, and transaction records are retained only for as long as reasonably needed for the purposes described in this Policy, legal compliance, security, and dispute resolution. Third-party providers may apply their own retention periods.
We use reasonable measures to protect information, but no method of transmission or storage is completely secure.
8. Your Choices and Rights
Depending on where you live, you may have rights to request access to, correction of, or deletion of your personal information, or to object to or restrict certain processing.
You can:
- Leave the release-updates checkbox unchecked and still send feedback;
- Opt out by replying to a release email or contacting us;
- Ask us to remove a feedback submission or subscriber record;
- Request access, correction, or deletion of account information, subject to necessary transaction and security retention;
- Sign out, remove activated profiles from your account, or manage subscription renewal; and
- Disable or remove the Extension to stop its local operation.
To make a privacy request, contact us using the details below. We may need to verify your request.
9. Children’s Privacy
SubKeep is not intended for children under the age of 13, and we do not knowingly collect personal information from children under 13. If you believe a child has provided personal information through the Website, contact us so we can address it.
10. International Processing
Our service providers may process information in countries other than your own, including the United States. Privacy laws in those countries may differ from those where you live. Each provider is responsible for the safeguards described in its own privacy documentation.
11. Changes to This Privacy Policy
We may update this Privacy Policy when SubKeep or its supporting services change. Updates will be posted on this page with a revised "Last Updated" date.
12. Contact Information
For privacy questions or requests, contact:
Stoyan Korudzhiev
skorudzhiev@gmail.com
Optional SubKeep usage sharing
From extension version 0.0.8.0, usage sharing is off by default. Setup and all features work without it. You can enable or disable it in the extension popup Settings. Enabling asks for the optional SubKeep website permission; existing billing permission is not consent. Disabling stops collection immediately and clears unsent events.
After consent, the extension creates a separate random measurement identifier. It is not a billing, installation-transition, or Google Keep account identifier. Collected milestones are setup started, sidebar ready, label scan outcome, labels linked or moved, group created, navigation outcome, first successful organization, and actual visible Keep return days. Each event includes extension release, operating-system category, interface locale, fresh-install/update cohort, day, and a bounded outcome code. We do not send note content, label names, hierarchy, account identifiers, email addresses, URLs, or raw errors. Events are deduplicated and sent in small batches on actual use, without periodic background usage heartbeats.
SubKeep's first-party website proxies these requests to our Cloudflare Worker and separate D1 insights tables. Insights are not joined with billing records. Detailed pseudonymous events and cohort records are retained for up to 90 days; anonymous daily milestone and cohort aggregates for up to 13 months. Reports cover only users who opted in. Inactivity is not proof of uninstalling.
Optional uninstall feedback
Removing the extension may open our first-party feedback page. Its URL contains only the release version. Choose an optional reason and/or write a short comment; no email or sign-in is required. Nothing is submitted until you click Send feedback. Website analytics do not run on this page. Please avoid personal information or private note content in comments. Survey responses have their own random submission ID, remain separate from usage identifiers, and are retained for up to 12 months. Service outages never prevent extension features or removing the extension.