Skip to content
FocusMiles Start focusing

Privacy

Last updated 21 October 2026

FocusMiles is a free pomodoro timer in a small 3D town. This page says what it keeps, where it keeps it, for how long, and how to turn it off or delete it.

The short version

  • Your timer, tasks, settings and progress stay in your browser unless you sign in.
  • You do not need an account, and we do not ask for your name, email or payment to use FocusMiles.
  • We count anonymous usage and crashes so we can fix things. It is on by default, and you can turn it off in Settings, under Privacy.
  • No ads. No advertising or cross-site tracking cookies.

Who runs it

FocusMiles is made and run by the FocusMiles maker. The contact address for questions and requests is at the bottom of this page.

What stays on your device

Everything you enter is saved in your browser's local storage: your critter and name, timer settings, tasks, sessions, stats, miles and passport stamps, the rooms you visited, and the city you chose. If you allow exact location for the weather, the rounded position is saved there too. A random anonymous id is made on your device the first time you open FocusMiles.

None of this leaves your device unless you sign in, post a message on a city wall, or the app sends the anonymous reports described below. Clearing the site's data in your browser removes it all.

What we send to our servers

Anonymous usage stats (on by default)

When something worth counting happens, for example a focus starts or a flight lands, the app sends an event. An event holds the event name, a few numbers or short labels, the city code, your device type (desktop, tablet or phone), the country your connection comes from (two letters, from Cloudflare), the build version, your anonymous id and an id for this visit. Events never include your name, email, tasks or notes.

On your first visit we also keep where you came from: direct, a search engine, a social site, another website, or an invite link, plus the campaign tag in the link (?ref= or utm_source). To stop all of this, switch "Share anonymous usage stats" off in Settings.

Error reports

If the app hits an error, such as a crash or a graphics failure, it sends the error message and stack trace, the page path, the room you were in, the build version, your browser and operating system, and the name of your graphics card. It does not send names, emails or notes. Reports use the same anonymous id and the same switch as the usage stats. We delete them after 60 days.

People in a room

When you sit in a room, the people there see your display name, your critter, your city, and whether you are focusing, on a break or away. Your current task is shown only if you switch on "Share my current task with others". When you leave the room, the room forgets you. The live count of people focusing in each city has no names in it.

The message wall

A message you post on a city wall is stored with your display name, the country you picked in your profile, the time, any doodle you drew, and the reactions other people leave. Every new message is checked by an automated moderation model run through OpenRouter, which reads the text, the name and the doodle. A message is then published, held for review, or refused. Only the newest 200 messages per city are kept. When someone reports a message, we keep the reporter's IP address with that report until the message is removed.

Accounts (optional)

You can use FocusMiles without an account. If you sign in, we keep what sign-in needs. With an email code, that is your email address. With a passkey, it is the passkey's public key and an id (the fingerprint or face data never leave your device). With Google, it is your Google account id and email, if Google sign-in is available. Sign-in codes go out by email through an email provider (Resend or Brevo).Your signed-in progress is copied to our database so your other devices see the same thing: your profile, settings, tasks, sessions, wallet, passport, badges, visited cities, room looks and goal days. Your device keeps a sign-in token, and we store only a hash of it.

Weather

To show the weather, the app asks Open-Meteo for current conditions. It uses an approximate position worked out from your time zone, or your exact position (rounded to about 1 km) if you allowed it. Open-Meteo receives the request together with your IP address, as any website does.

Radio

Radio plays directly from the stations' own servers (NTS, SomaFM, Radio France and others). Each station's server sees your IP address, as any web stream does. The rain, typing and street sounds are served from FocusMiles itself.

What we do not collect

  • No payment details. FocusMiles has no payments yet.
  • No camera or microphone. The app does not ask for either.
  • No location, unless you allow the exact weather position described above.
  • No advertising profiles, and no data sold or shared for advertising.
  • No third-party analytics or ad scripts. Fonts and images are served from FocusMiles.

Other companies that handle data

  • Cloudflare hosts the site and runs our servers and database. Like any host, it sees connection data such as your IP address. Data may be processed in data centres outside your country.
  • OpenRouter runs the moderation model that checks wall messages (text, name and doodle).
  • Open-Meteo provides the weather (see above).
  • Radio stations stream their own audio (see above).
  • Resend or Brevo send sign-in codes, if you sign in by email.
  • Google, only if you use Google sign-in.

How long we keep it

  • On your device: until you clear the site's data in your browser.
  • Anonymous usage events: until we delete them. We do not yet delete them automatically.
  • Error reports: 60 days.
  • Presence in a room and the live count: only while you are connected.
  • Wall messages: until the author deletes them, moderation removes them, or newer messages push them out of the newest 200 for that city.
  • IP addresses on message reports: until the reported message is removed.
  • Accounts: until you ask us to delete yours.
  • Rate-limit counters, which stop abuse: they expire within a short window.

Your choices

  • Turn off anonymous usage stats and error reports: Settings, then Privacy.
  • Keep your task private: sharing it is off by default.
  • Delete what is on your device: clear this site's data in your browser settings.
  • Take down a message you posted: use "Remove my note" on it on the wall.
  • Ask for a copy of, a correction to, or deletion of anything we hold about you or your account: write to the contact address below.

Children

FocusMiles is not made for children under 13. If you are under 13, please do not sign in or post messages, and ask a parent or guardian to contact us. If we learn that we hold data from a child under 13, we delete it.

Changes

We may update this page. The date at the top shows the last change.

Contact

Questions, requests and deletion asks: [email protected]

FocusMiles

A cozy place to get things done, together.

Start focusing Cities FAQ Privacy Terms

Street recordings and sounds: freesound.org, CC0 or CC BY.