Privacy Policy — Pulsr
Last updated: October 22, 2026
Pulsr ("the app") is developed by Krillo ("we", "us"). This policy explains what data the app handles. The short version: the app has no account and no ads, your massage runs entirely on your device, and the only things that leave it are what is needed to run subscriptions, anonymous usage statistics that help us improve the app, and, only if you invite a partner by link, the connection described under "Partner by link".
What stays on your device
Your settings — the vibration pattern, the intensity and the session length you picked — are stored on your phone and are deleted when you uninstall the app. The vibration itself is generated by your device: nothing about a running massage is streamed anywhere, except the short status of a partner session that you start yourself (see "Partner by link" below).
Separately, and anonymously, we count how the app is used. This includes the settings you choose (for example the pattern, the intensity band and the auto-stop length), what happens during a session (when it starts and stops, how long it lasted and why it ended), and how often the subscription screen is shown, opened or dismissed. These examples are illustrative rather than a complete list — "Usage statistics" below describes what we collect and why. These counts carry no name, email or phone number. They are tied only to the anonymous ID described in "Usage statistics" — the same one used for your subscription — and never to your identity.
The app has no account or sign-up, does not track your location, and does not access your contacts, photos, files, camera or microphone.
Subscription data
Subscriptions are sold and processed by Google Play. We never see or store your payment details.
To show the correct prices and to know whether your subscription is active, the app uses RevenueCat, a subscription-management service. When the app runs, RevenueCat receives:
- a randomly generated anonymous app user ID (it is not your name, email or Google account, and we cannot use it to identify you);
- your Google Play purchase receipt and subscription status, if you subscribe;
- basic technical details needed to serve the right offer: app version, device model, OS version, country and language.
We use this only to unlock Pulsr Pro on your device, to restore purchases, and to see anonymous, aggregated sales numbers. We do not sell this data and do not use it for advertising. RevenueCat processes it on our behalf — see RevenueCat's privacy policy and Google's privacy policy. You can ask us to delete your subscription record at the contact address below; note that this does not cancel a subscription — cancel it in Google Play.
Usage statistics
To see which features people actually use, Pulsr sends anonymous usage events to PostHog, an analytics service. An event records what happened in the app — for example "a session was started with the Pulse pattern at medium intensity" or "the subscription screen was shown" — together with the app version, the language the app is displayed in, when the app was installed, and the same randomly generated anonymous ID that is used for subscriptions.
If you arrived from an ad, or by tapping the install button on a partner's invite page, Google Play passes the app the campaign tag attached to that ad or that button, and the app stores it with your usage statistics. It tells us which campaign brought you to Pulsr. It is not an advertising identifier and it says nothing about you personally.
If you use the partner link, the app also counts, under the same anonymous ID, that a link was created, whether a partner connected and after how many seconds, how the session ended, how long it lasted and how the link was handed over (share menu or copy). These counts do not contain the room code or the link, and they describe your use of the app, not your partner.
Subscription events — when a trial starts, converts, renews or is cancelled — are also passed from RevenueCat to our analytics service under the same anonymous ID, so we can see how many people the app converts. They carry the product, the price and the store, never your payment details.
We do not collect your name, email, Google account, phone number or location, and we do not use an advertising identifier — Pulsr contains no ads. Statistics are processed on servers in the European Union and are never sold or shared with advertisers. To have your statistics deleted, write to the contact address below.
Partner by link
This is optional and starts only when you tap the invite icon. The app creates a link, you send it to someone you choose, and they open it in a browser and control the vibration of your phone in real time. Nothing happens until you create the link.
What passes through our room server (it runs on Cloudflare at krillo.dev):
- Your phone asks the server to create a room. The server returns a random room code, which is part of the link, and a random secret that only your phone holds. The server keeps only a one-way hash of that secret.
- Your partner's browser sends control events: a tap, hold or release, a choice among four patterns, a strength level, and stop. The server forwards only these forms and drops anything else, at most 20 per second.
- Your phone sends back a status for the partner's page: whether the vibration is live or paused, and how many seconds are left.
- The technical address (IP address) of each connection, from your phone and from the partner's browser. Cloudflare, which runs the network the server sits on, necessarily sees it in order to deliver the traffic, under Cloudflare's privacy policy. Our code reads your phone's address once, when a room is created, turns it into a short one-way label and uses it only to limit room creation to 10 per minute. Our code does not store the address or write it anywhere.
What is not stored. Messages are only forwarded, never saved, and the server keeps no history of a session. The only things kept for a room are its creation time and the hash of the secret, and both are deleted when the room closes. We have switched off request logs and traces for this server. Our own code writes only three event names, with no room code, address or message: a room was created, a partner joined, and a room was closed (with the reason and its duration in seconds).
How long it lives. A room closes as soon as you tap Stop or leave the partner screen, and the link stops working. If your phone loses its connection, the room waits up to 10 minutes for it to return and then closes. A room never lives longer than 2 hours from the moment it was created.
Your partner installs nothing and has no account. The page they open picks its language from their browser's language setting, sets no cookies, and loads no ads, analytics or third-party scripts; their browser talks only to krillo.dev. We do not collect their name or anything else about them beyond what is described above: the control events and the connection address. The page has an "Install Pulsr" button, an ordinary link to Google Play with a campaign tag in it; nothing happens unless they tap it.
Who can join. Anyone who has the link can open the page while the room is live, and one partner at a time can control. Treat the link as private and send it only to the person you mean.
How to stop. Tap Stop in the app, or leave the partner screen: the vibration stops and the room closes for both sides.
Permissions
- Vibration — to run the massage you start.
- Keep the device awake (wake lock) — so a running massage can continue when the screen goes off. Used only while a session is active.
- Internet / network state — to load subscription prices, check subscription status, send anonymous usage statistics, and connect a partner session that you start.
- Billing — to let Google Play process a purchase (a subscription or a one-time purchase).
Third-party services
The app includes RevenueCat and Google Play Billing, both used solely for purchases (subscriptions and one-time purchases) as described above. The partner link runs on a server hosted by Cloudflare, which carries the connection as described under "Partner by link".
The app contains no advertising SDKs. For product analytics it uses PostHog, described under "Usage statistics" above. The app's Play Store data-safety label will always match what the app actually does.
Purchases and cancellation
The weekly plan starts with a 3-day free trial; you are not charged until the trial ends. Subscriptions renew automatically until cancelled. You can cancel anytime in Google Play → Subscriptions, or via "Manage subscription" inside the app, which opens that page. Uninstalling the app does not cancel the subscription — cancel it in Google Play. We never charge you outside Google Play, and cancellation always works. Full terms: Terms of Use.
Children
Pulsr is a general-audience wellness utility and is not directed at children. We do not knowingly collect personal information from anyone, including children: the app has no account, and the usage statistics described above are anonymous.
Contact
Questions about this policy: [email protected]
Changes
We will post any changes to this policy at this same URL with an updated date.