Privacy policy
As of October 2026. The German version of this policy is legally binding.
This policy explains which personal data we process, for what purpose and on which legal basis. It applies to our website jpnote.de, the JP Note desktop app, the phone app (PWA) and the sync service (“cloud mailbox”).
1. Controller
Jan-Philipp Reich
JP Note
Spielbrink 5
44339 Dortmund
Deutschland
Email: [email protected]
Imprint: /en/imprint/
We are not required to appoint a data protection officer.
2. Overview
- No ads, no profiling, no sale of data. Emails with tips and news only if you agree (section 9).
- The website counts visits with its own counter, without cookies and without storing IP addresses (section 4). We do not use statistics or marketing services from other providers.
- The desktop app sends anonymous error reports and usage statistics only if you agree (section 11). Without an answer, both stay off.
- Without an account, all app data stays on your device. With password protection it is stored encrypted there, otherwise unencrypted.
- Sync requires password protection. Notes are encrypted on your device before upload (end-to-end). We cannot read them.
3. Hosting and delivery
The website is hosted by netcup GmbH, Karlsruhe, Germany. DNS, delivery and protection against attacks are handled by Cloudflare, Inc., 101 Townsend St, San Francisco, CA 94107, USA. The phone app and the sync service run on Cloudflare Workers. When you access them, technical data is processed (IP address, time, requested page or endpoint, browser) and briefly stored in server logs. Legal basis: Art. 6(1)(f) GDPR (secure and reliable operation). We have data processing agreements with both providers.
4. Storage on your device
The website stores in your browser's local storage only: your privacy choice (jp.consent) on the feedback page, a random ID and the entries you voted for (jp.voter, jp.voted), on the download page whether you no longer want to see the safety notice (jp.dlhelp), your display settings for the website (text size, animations, design, stored as jp.prefs), the volume of the music samples (jp.musicVol) and, only if you switch off the visitor counter, that choice (jp.notrack). The phone app stores your notes, settings and keys in your browser's storage (local storage, IndexedDB, service worker). This is strictly necessary for the services you request (§ 25(2) no. 2 TDDDG). You can delete it at any time via your browser settings.
Visitor counter without cookies
To see how the website is used, a small script on each page view sends the following to our server (Cloudflare, section 3): the page viewed, the referring website (domain only), the language of the page, campaign details contained in the link (utm_source, utm_medium, utm_campaign) and, for certain actions, which one was clicked (downloads per system, the buy button, opening the checkout, submitting a form without its content, starting the video, opening an installation guide or an FAQ entry). In addition, the width of the browser window, which the server only stores as a rough range (for example “768 to 1023 pixels”), whether a form was started (without any input) and measurements of the page loading time (LCP, CLS, INP, server response time, load time). The server also derives the country from the IP address (via Cloudflare) and a rough device class, operating system and browser without version numbers from the browser identifier.
To tell visitors apart within one day, the server forms a hash from the IP address, the browser identifier, the website address and a random value that is newly generated every day. IP address and browser identifier are only processed in memory for this and are not stored. With the same hash the server also counts sessions: if more than 30 minutes pass between two page views on the same day, a new session begins. The random value and all hashes are deleted the following day. After that, no visit can be linked to a person or to visits on other days. We only keep daily counts without personal reference, for at most 400 days. No cookies are set and no identifier is stored on your device.
Legal basis: Art. 6(1)(f) GDPR. Our legitimate interest is measuring the reach of the website and improving it. You can object at any time: open jpnote.de/?notrack=1 once in your browser. Your browser then stores jp.notrack and no longer sends any counts (?notrack=0 switches it back on).
We do not use statistics or marketing services from other providers on the website. Should that change, they will only be loaded with your consent (§ 25(1) TDDDG, Art. 6(1)(a) GDPR), and this policy will be updated beforehand. You can change or withdraw your choice any time via “Cookie settings” at the bottom of every page.
5. Contact form, bug reports and ideas
When you send a message or an entry we store type, area, subject, text, platform, app version, language and your email address (required for the contact form, optional for feedback). Contact requests are never published. We receive a notification email. Feedback entries are published after review, never with your email address. To prevent abuse your IP address is processed briefly to limit the number of submissions. Legal basis: Art. 6(1)(b) and (f) GDPR, for the optional email address Art. 6(1)(a) GDPR. We delete requests once they are resolved, unless statutory retention applies. You can ask for your entry to be deleted at any time.
Attachments (optional): You can attach up to three images (e.g. screenshots) and the bug report from the app to a bug report or idea. Large images are shrunk in your browser before upload. Attachments are never published, only we can see them in the admin area, and they are deleted automatically after 90 days (earlier together with the entry). Please make sure screenshots show no private content. The bug report contains app version, system, sync status, settings, counts and a cleaned technical log, but no note contents, task texts, titles, passwords or email addresses. Legal basis: Art. 6(1)(b) and (f) GDPR.
6. Bot protection (Cloudflare Turnstile)
Forms (registration, sign-in, feedback, contact) are protected by Cloudflare Turnstile, which checks browser characteristics to tell humans from bots. Legal basis: Art. 6(1)(f) GDPR (protection against abuse).
7. Downloads and updates (GitHub)
Installation files and updates are provided via GitHub (GitHub, Inc., 88 Colin P. Kelly Jr. St, San Francisco, CA 94107, USA). The download page fetches the current version number from GitHub, and the desktop app checks GitHub for updates. GitHub receives your IP address and the requested version. Legal basis: Art. 6(1)(f) GDPR.
8. Account and sync
- Account data: name, email address, language, plan, license, device names, time of last activity, storage used and the public key used for sharing. Name and email address are stored unencrypted. The email address is shown masked on new devices. Purpose: account, sync, phone app and plan (Art. 6(1)(b) GDPR).
- Profile picture (optional): You can choose a symbol and a color or upload your own photo. The app crops the photo to a square on your device, shrinks it to 256 × 256 pixels and saves it again, which removes location and other image data. The photo is stored unencrypted in your cloud mailbox and is visible only to your own devices and to our support (e.g. to remove an inappropriate picture). It is not shown to other users, including in shared notes. You can remove it at any time in Settings → Account. Legal basis: Art. 6(1)(b) GDPR, for support access Art. 6(1)(f) GDPR (preventing misuse).
- Name check: When you save a name, the server checks it automatically against length limits, links, email addresses, phone numbers and a list of offensive or reserved words. A rejected name is not stored. There is no profiling and no automated decision with legal effect. If needed, our support can remove a name or photo and, in case of misuse, block uploading custom photos or changing the name.
- Sign-in codes: To register and sign in we send a 6-digit code by email. To prevent abuse we count codes per email address and per IP address for one hour. When you register we check whether the address belongs to a known disposable email service and whether its domain accepts email (DNS lookup via Cloudflare, only the domain is sent). Variants of the same address (e.g. with “+tag” or, for Gmail, with dots) count as one address so that nobody creates several accounts or trials with the same mailbox (Art. 6(1)(f) GDPR).
- History of earlier versions: From the trial on, each device uploads the earlier versions of texts, titles and notes fields it keeps, end-to-end encrypted, to your cloud mailbox so that you can see and restore them on all devices. We cannot read them. They count towards your account storage. Legal basis: Art. 6(1)(b) GDPR.
- Notes, tasks, sources and attachments are stored end-to-end encrypted. Reminder times are stored in plain text so that push notifications can be sent. Titles stay encrypted.
- Referrals: Your account receives an invitation code. If someone signs up with this code, we store which account invited, which account was created, a normalised form of the new email address (so that each address can only be invited once), whether and when a purchase was made, the points awarded and redemptions in the points shop. The inviting person only sees counts, never names or addresses of invited people. Legal basis: Art. 6(1)(b) GDPR, for abuse prevention Art. 6(1)(f) GDPR. We delete this data with the inviting account, purchase data after the statutory retention periods.
- Sharing (beta): To invite someone we process the name and email address you enter to find their account. The invitation appears in their app. No email is sent. Shared notes are encrypted with a separate key for each member.
- Mail to JP Note (subscription): If you create your own address, our server accepts mail sent to it (domain jpnote-mail.de) via Cloudflare Email Routing. The server reads sender, subject, date and text, encrypts everything right away with your account's public key and stores only this encrypted version. Only your app with your password can read it. We only store attachments that are images, PDFs, plain text (TXT, CSV, VCF, ICS) or Office documents without macros, also only in encrypted form. Calendar invitations (ICS) are also placed as text inside the encrypted mail so the app can show the date. Other attachments are not stored, only their name inside the encrypted mail. For custom addresses without spam protection we also store whether an address was turned off due to abuse. Mails stay in the inbox for at most 30 days and are deleted as soon as you take them over or delete them. You can turn the address off or replace it at any time (Art. 6(1)(b) GDPR).
9. Emails
Sign-in codes and service emails are sent via Resend, Inc., USA, and as a fallback via the mail server of netcup GmbH, Germany. Processed: email address, content and time of the email. To stay within sending limits we count emails per day and month, without content or addresses. Legal basis: Art. 6(1)(b) GDPR.
Emails with tips, news and a request for a review (only with consent)
If you tick the optional box when signing up, in the app (Settings → Account) or on the purchase page, we occasionally send you emails. There are three kinds that you can unsubscribe from separately: tips for using the app (mainly during the trial), news and new features and at most once a request for a review. For this we store your email address, language, time and source of your consent, the wording of the box, which kinds you unsubscribed from, and whether and when we sent the review request. Your consent is only stored once your address is confirmed: by the sign-in code when signing up, by the payment when buying. These emails are sent via the mail server of netcup GmbH, Daimlerstraße 25, 76185 Karlsruhe, Germany, with whom we have a data processing agreement. We do not track whether you open the emails or click links. Legal basis: your consent (Art. 6(1)(a) GDPR, § 7(2) no. 2 UWG).
You can unsubscribe from each kind separately with the button in the email (for example “No more tips”) or in the app under Settings → Account. The other emails keep coming. You can withdraw your consent as a whole at any time with effect for the future: with the link “Unsubscribe from all” in each of these emails, with the unsubscribe function of your email program or in the app under Settings → Account. You will still receive emails about your account and your purchase. We keep proof of consent and withdrawal to be able to demonstrate it (Art. 7(1) and Art. 6(1)(c) GDPR), for at most 3 years after a withdrawal.
Reviews
You can rate JP Note in the app or via the link in the review email. We store stars, text, the display name, language, plan, time and your email address (so that each person leaves only one review and can change it later). On jpnote.de we only publish stars, text, display name, date and whether the review comes from a Pro customer or from the trial, never your email address. Legal basis: your consent by submitting (Art. 6(1)(a) GDPR). You can change your review or request its deletion at any time. It is removed when you delete your account. Trustpilot (Trustpilot A/S, Copenhagen, Denmark) is a separate service. If you rate there, its privacy policy applies.
10. Push reminders
If you enable notifications in the phone app, we store the address of your browser's push service (Google, Apple or Mozilla, depending on the browser) and the encrypted reminders until they are sent. The push service only receives encrypted content. You can disable notifications at any time. Legal basis: Art. 6(1)(b) GDPR.
11. Optional features (only when you use them)
- DOI lookup (literature): the desktop app sends the DOI you enter to doi.org, which forwards the request to Crossref or DataCite. They receive the DOI and your IP address.
- Voice input (phone): uses your browser's speech recognition. Depending on the browser, audio is processed by Google or Apple.
- Calendar sync (desktop app, Pro): If you connect a calendar account (Google, Microsoft or a CalDAV account such as iCloud), the desktop app syncs directly with that provider. It transfers the title, date and time of tasks from the notes you choose, plus a reference to note and page. From the calendar, the app reads title, time and location of events from 30 days back to 120 days ahead. Credentials and events stay on your device (stored encrypted), our servers never receive them. You sign in with the respective provider, whose privacy policy applies. Google user data: JP Note uses data from Google Calendar only to show it to you in JP Note and to sync it with your tasks. It is not shared with third parties, not used for advertising and not read by humans. The use complies with the Google API Services User Data Policy, including the Limited Use requirements. You can disconnect at any time under Settings → Calendar and also revoke access in your Google or Microsoft account.
- Read links and capture links (Pro): The content of a read link (a snapshot of a page) is encrypted on your device with a key from the link password and a random key that only appears after the “#” in the address and never reaches our server. We store only the encrypted content, a hash of the password proof, the expiry date and counters (views, wrong passwords). Entries via a capture link (name chosen freely and text) are encrypted in the visitor's browser before sending. To protect against abuse, we briefly count requests per IP address (for at most one day, without the content) and use Cloudflare Turnstile. Links end at the date you choose or earlier if you end them. We delete them completely 30 days after expiry, entries with the link. Legal basis: Art. 6(1)(b) GDPR for you, Art. 6(1)(f) GDPR (security) for visitors.
Legal basis: Art. 6(1)(b) GDPR.
Error reports and usage statistics of the desktop app (only with consent)
The desktop app asks you once whether it may send anonymous error reports and usage statistics. Both can be set separately and stay off unless you agree. You can withdraw your consent at any time under Settings → Data → Privacy. Counts not yet sent are then discarded.
- Error reports: for an unexpected error, the error message and the top lines of the program trace, the app version and the operating system (without version). Before sending, the app removes folder paths, user names, email addresses, keys and the names of your own files. Identical errors are combined, at most 10 per day.
- Usage statistics: how often each feature was used per day (e.g. “Task created: 12”, “Search opened: 3”), plus app version and operating system. Until sent, the counts are kept in the file
telemetry.jsonin the app folder and are sent to us once on the following day. - Never included: notes, task texts, file names, your account, your email address or a device or installation ID. The reports cannot be linked to a person.
Reports go to our service on Cloudflare Workers (section 3). Your IP address is only used as a hash that changes daily, to limit requests, and is not stored with the report. Purpose: finding and fixing errors and developing the app according to actual use. Legal basis: your consent (Art. 6(1)(a) GDPR, § 25(1) TDDDG).
12. Purchases, payment and withdrawal
Payments are processed by Stripe Payments Europe, Ltd., 1 Grand Canal Street Lower, Grand Canal Dock, Dublin, D02 H210, Ireland (“Stripe”). On Stripe's checkout page you enter your payment details, email address and, depending on the payment method, name and billing address. Stripe processes this data partly on our behalf and partly as an independent controller (e.g. fraud prevention, legal obligations). Please also see Stripe's privacy policy. Depending on the payment method (e.g. Klarna, Apple Pay, Google Pay), the respective provider also receives data. We receive no card or bank details.
For each order we store: name, email address, amount, payment status, time of your consent to immediate activation, the license code, a redeemed coupon code with its discount and, if you bought from the app, your account. Purpose: contract performance, invoice, license, handling withdrawals and refunds (Art. 6(1)(b) and (c) GDPR). Invoices are created by Stripe on our behalf and sent by email.
For a subscription we additionally store in your account: the Stripe customer and subscription ID, the billing period (monthly or yearly), the status (for example active, overdue, cancelled), the end of the paid period and the cancellation date. We need this to provide the subscription (Art. 6(1)(b) GDPR). If you subscribe on the website before there is an account with your email address, we keep the address and the subscription ID until you confirm an account with this address. Payment details stay with Stripe. A cancellation via our website is logged with date and time, and the confirmation is sent to the email address you entered. We keep this data as long as the subscription runs and afterwards for as long as tax and commercial law requires.
If you use the “Withdraw from contract” function, we process name, email address, order number and your message to assign the withdrawal and to confirm its receipt (Art. 6(1)(c) GDPR in conjunction with § 356a BGB).
13. Transfers to third countries
Cloudflare, Resend, GitHub and Stripe, Inc. (parent company of Stripe Payments Europe) are based in the USA. Transfers are based on the EU-US Data Privacy Framework (Art. 45 GDPR) and, in addition, on the standard contractual clauses in the respective data processing agreements.
14. Retention
- Account data: until you delete your account (app: Settings → Account → Delete account). All data in the cloud mailbox is then deleted. Data on your devices remains.
- Profile photo: until you remove it, replace it or delete your account.
- Sign-in codes: until they expire.
- Error reports: until the error is fixed, at most the 500 most recent. Usage statistics: as daily counts for at most 400 days.
- Website visitor counter: daily counts for at most 400 days. The daily random value and the hashes are deleted the following day.
- History of earlier versions: on your devices and encrypted in the cloud mailbox for 30 days (conflicts 60 days), with a subscription up to one year. Immediately when you delete your account.
- Consent to emails with tips and news: as long as it exists. Proof after a withdrawal for at most 3 years. Reviews: until you have them deleted or delete your account.
- Server logs: according to the hosting providers' retention periods.
- Orders, invoices and withdrawals: for the statutory retention periods under tax and commercial law (up to 10 years).
15. Your rights
You have the right to access, rectification, erasure, restriction of processing, data portability (Art. 15 to 20 GDPR) and to withdraw consent at any time with effect for the future. You may object to processing based on Art. 6(1)(f) GDPR at any time for reasons arising from your particular situation (Art. 21 GDPR). You may lodge a complaint with a supervisory authority, e.g. the Data Protection Commissioner of North Rhine-Westphalia (LDI NRW). To exercise your rights, use the functions in the app or email us.
Providing data is neither legally nor contractually required. Without an account you can use the app locally. We do not use automated decision-making.