Documentation
Data and storage
Every piece of data the tools keep on your device or send to the site, with the exact names and limits.
This is the technical view. The binding text is the privacy policy.
Stored in your browser
The site sets no cookies. It uses localStorage for these keys. They stay on your device, and the site never receives them. Clear the site data in your browser to remove them.
| Key | Holds | Written when |
|---|---|---|
theme | light or dark | You pick a colour theme. Auto removes the key. |
mps-cues | on or off | You turn the vibration and chime cues on or off. |
mps-install-dismissed | 1 | You close the install hint. |
mps.drying.startedAt | The start time of the drying timer | You start the drying timer. It expires 17 hours later. |
mps.drying.fired | Which timer alerts already played | A timer alert plays. |
mps.checklist.v1 | The ticked steps of the wet phone checklist | You tick or reset a step. |
Never sent
- Microphone recordings. The clip stays in the memory of the page and is gone when you close or reload it.
- Checklist ticks and drying timer times.
- Your answers in the problem finder, except the result shown (as an anonymous event).
Anonymous events
The pages send small anonymous events to the site's own endpoint on Cloudflare. Each event holds its name, the page path, the path of the previous page on this site (if any) and a few short fields. Text values are cut to 64 characters, and one event is at most 1 KB. Events hold no IP address, no browser type, no identifier and no text that you type. The server ignores events from known bots and deletes events after 90 days.
| Event | Group | Fields kept |
|---|---|---|
page_view | Page | s |
page_exit | Page | scroll, secs |
tool_start | Tool | tool |
tool_finish | Tool | tool, outcome |
next_click | Page | from, to, after |
tool_success | Tool | tool, test, answer, outcome, before, session |
tool_error | Tool | stage, tool |
cycle_complete | Tool | cycle |
quiz_start | Tool | none |
quiz_result | Tool | result |
affiliate_click | Other | program, placement, tier |
checklist_tick | Tool | none |
drying_timer_start | Tool | none |
drying_alert | Tool | at |
share | Other | method |
install_prompt | Other | action, kind, outcome |
voice_sample | Tool | none |
review_open | Other | tool, outcome, rating |
review_submit | Other | tool, outcome, rating |
The server keeps only the fields in this table and drops all others.
The site also uses Umami Cloud to count page views and the same events. The Umami script loads only when the page is idle, sets no cookies and stores nothing on your device. Its servers receive your IP address with each request; see the privacy policy.
Outcome reports ("did it work?")
After a tool run you can send a short report. A person reads each report before it is published.
| Field | Required | Limit |
|---|---|---|
| Tool | Yes | Water eject, speaker check or microphone test |
| Result | Yes | Worked, partly or no change |
| Display name | Yes | 40 characters |
| Phone model | No | 60 characters |
| Note | No | 500 characters |
| Star rating | No | 1 to 5 |
The report is stored with its time and a review status: pending, approved or rejected. Only approved reports appear on the site. A report that is not approved is deleted after 90 days. Reports store no email address, no IP address and no browser type.
Contact form
| Field | Required | Limit |
|---|---|---|
| Name | Yes | 80 characters |
| Yes | 120 characters | |
| Message | Yes | 10 to 2000 characters |
| Page you wrote from | No | 128 characters |
Messages are stored in the site's database on Cloudflare and deleted after 12 months.
Against spam, both forms use hidden fields, a daily limit per visitor counted with a one-way code made from the IP address (deleted the next day), and a Cloudflare Turnstile check from the second message in a day.
Offline cache
- A service worker keeps copies of site files in the browser cache "mps-v3", so pages you visited work without a connection.
- On the first visit it saves the home page, the silent audio track, the web app manifest and the app icon.
- Pages: it asks the network first. After 4 seconds without an answer, or offline, it shows the saved copy, or the home page if that page was never saved.
- Script and style files with a version in their name: it uses the saved copy first and keeps the newest 60 files.
- Other files, such as images and audio: it shows the saved copy and updates it in the background.