Privacy & storage
Last updated 2026-09-24
RideWindow is free and stores only what the service needs. No cookies, no third-party analytics, no advertising and no trackers. This page lists exactly what is stored on your device, what we keep about your account, which other services receive data, why we are allowed to process it, and what you can ask us to do. The terms of use cover the rules for using the service itself.
What is stored in your browser
We use your browser's local storage, not cookies. Our API sets no cookies at all, in any response. Nothing below is sent to a third party, and none of it is used to profile you.
| Key | Purpose | Kept until |
|---|---|---|
| accessToken | Proves you are signed in on each request. | You sign out, or it expires after 60 minutes. |
| refreshToken | Lets the app renew your sign-in without asking for your password. | You sign out, or it expires after 7 days. |
| rw_consent | Remembers the choice you made in the privacy notice, and when. | You clear your browser data, or the notice changes and asks again. |
| rw_units | Remembers whether you want metric or imperial units, so the choice survives a reload even without an account. | You clear your browser data. |
| rw_route_draft | Keeps the route you are drawing on the route page, so a reload does not lose it. It never leaves your device. | You save or clear the route, or 14 days pass, or you clear your browser data. |
All five are strictly necessary for the service you asked for, so no consent is required for them. You can review or change your choice at any time via .
There are currently no optional categories. If we ever add one, such as analytics, this notice will ask you again before anything changes, and it will be off until you say otherwise.
Anonymous visit counts
So we know whether the site is being used, we count how many times each page is opened, per day. Your browser sends only the kind of page it opened, such as /forecast/:lat/:lon — never the coordinates, the place name, an id or anything else from the address bar — and our server adds one to that page's counter for the day. On the first page you open, your browser also sends the name of the site that linked you here, such as www.google.com — never the address of the page you came from or what you searched for — and our server keeps only a fixed label for it, such as "google", "reddit" or "other", in a counter for the day. We also count, per day, how many forecasts are served and how many routes are scored. Nothing else is recorded: no IP address, no browser details, no account, no cookie and nothing stored on your device, so a count cannot be linked to you or to any other visit. Automated clients such as search-engine crawlers are left out.
If your browser sends Do Not Track or Global Privacy Control, it sends nothing at all. The totals, together with account figures such as the number of new registrations and saved routes, are emailed once a day to the site's administrator. They contain no personal data.
What we keep about your account
Only if you register. We keep it to provide the service you signed up for (GDPR Art. 6(1)(b)) and delete it when your account is deleted.
- Email address and display name.
- A salted hash of your password. We never store the password itself.
- Your home location, as a name and coordinates, plus your timezone and whether you want metric or imperial units.
- Your ride preferences: comfort temperature range, wind and rain-chance tolerance, your experience level, and whether you ride after dark or on wet roads.
- Your saved locations, as names and coordinates, so we can score them for you.
- Your saved routes: the name you gave the route and its shape, stored as a compressed list of coordinates, along with its total distance and the average speed you set. A ride score is never stored, so opening a saved route always re-scores it against the current forecast. Up to 50 routes per account.
- Your notification preferences: whether you want ride-window digest emails, how often, at what minimum score, and for which days and hours.
- When your account was created and when you last signed in.
- One record per active sign-in session, holding a one-way hash of the session token, when it was issued and expires, and the IP address it was created from. We store the hash rather than the token so a database leak cannot be used to sign in as you. Records are removed when they expire, when you sign out, when you change your password, and when your account is deleted.
Sign-in log. Every sign-in attempt on the service is recorded: the time, the email address that was used, whether it succeeded, a short machine-readable reason when it failed, and the IP address and browser user-agent it came from. That is personal data, and we keep it for one reason — to spot credential-stuffing and password-guessing attacks against accounts, including yours (GDPR Art. 6(1)(f), our legitimate interest in keeping accounts secure). Entries are deleted automatically after 90 days, and immediately if you delete your account. Administrators of this service can read this log.
Weather lookups from our server carry only a location's coordinates, never your identity or IP address.
Routes you upload or draw. A GPX file you upload for a route score is read in memory, sampled into a handful of coordinates that are sent to the weather service, and discarded when the response is sent. The file itself is never stored. You can also build a route in the browser by dropping pins on an OpenStreetMap map. Nothing is saved until you press Save: at that point we keep the route's name and its simplified shape, and a route you drew is stored exactly like one you uploaded. Downloading a route as a GPX file happens entirely in your browser — the file is written on your device and never passes through our server.
Who can see this. Administrators of this service can view and change the account details and ride preferences above, read the sign-in log, lock an account and delete one. They cannot read your password, which is only ever stored as a salted hash.
Email we send
We send three kinds of email and nothing else. There is no marketing list, and we never pass your address to anyone but the mail provider below.
- Password resets. If you ask to reset your password we email a single-use link that expires after one hour. Requesting a reset gives the same answer whether or not an account exists for the address, so the form cannot be used to find out who is registered. Completing a reset signs out every existing session on the account.
- Contact-form messages. What you type in the contact form — your name, your email address, the category and your message — is emailed to [email protected] with your address as the Reply-To, so we can answer you. It is not stored in our database. The form is protected by a short-lived signed token and a hidden field that only a bot would fill in; there is deliberately no CAPTCHA, because a CAPTCHA would be a third-party tracker (GDPR Art. 6(1)(f), our legitimate interest in keeping spam out).
- Ride-window digests. Only if you turn them on in your settings (GDPR Art. 6(1)(a), your consent). You choose how often, the minimum score worth an email, and which days and hours; we send only when a window clears that bar. We store your digest preferences and when the last one was sent. Every digest carries a one-click unsubscribe link that works without signing in, and you can turn digests off any time in your settings.
Mail provider. Email is delivered over HTTPS by Resend, acting as our processor. Your address, the subject and the message body pass through their systems so they can be delivered. We do not pin a storage region with them, and Resend is a US company, so you should assume the address and content of these emails are processed outside the EU.
Other services that receive data
Contacted directly by your browser
- Location search: OpenStreetMap Nominatim. When you type in a location search box, your browser sends the text you typed and, unavoidably, your IP address directly to nominatim.openstreetmap.org to turn it into coordinates. This only happens when you search. The OpenStreetMap Foundation's privacy policy applies to that request.
- Maps: OpenStreetMap tiles. Any page that shows a map — a forecast, a scored or saved route, and the route builder you draw on — makes your browser request map images from tile.openstreetmap.org, which unavoidably sends your IP address. Only the coordinates already in the page are involved: the map is drawn from the location you looked up, the route you uploaded, or the pins you place. Nothing about your account or your saved locations is sent, and the same OpenStreetMap Foundation privacy policy applies. The dark map styling is a CSS filter over those same tiles, not a second provider.
Contacted by our server, never by your browser
- Weather: Open-Meteo. Queried with a location's coordinates only. Your identity, your account and your IP address are never part of that request.
- Email: Resend. Receives the recipient address and content of the emails described above, and nothing else.
- Hosting and database: Railway. Runs the application and the PostgreSQL database, so everything on this page is stored on their infrastructure. Like any web server, ours and Railway process your IP address and request details in order to deliver pages and keep the service secure. Those logs are not used for tracking.
Fonts are served from our own domain; your visit is not reported to Google or any other font provider.
One thing worth naming. Our home page carries a google-adsense-account meta tag. It is a plain text line that proves we own the domain. It loads no script, sets no cookie and sends nothing to Google when you visit. No ads are served on this site. If that ever changes, it would need an optional consent category, this page would say so, and nothing would load until you agreed.
Why we are allowed to process this
Under GDPR Art. 6, each purpose has one basis:
- Your account and everything it gives you — scores, forecasts, saved locations, saved routes and settings: performance of a contract with you, Art. 6(1)(b). Without this data the service cannot work, so it is not optional.
- The sign-in log, session records and spam protection: our legitimate interests, Art. 6(1)(f) — keeping accounts from being broken into and keeping the contact form usable. You can object to this; see below.
- Ride-window digest emails: your consent, Art. 6(1)(a), given by turning them on and withdrawn by turning them off or using the unsubscribe link.
- Anonymous use of the site — searching a location and reading a forecast without an account: no account data is created at all.
How long we keep it
- Your profile, preferences, saved locations, saved routes and notification settings are kept for as long as your account exists.
- Sign-in log entries are purged automatically 90 days after the attempt.
- Anonymous daily visit counts contain no personal data and are kept as site statistics.
- Session records disappear when they expire, when you sign out, and when you change your password.
- Password reset links stop working one hour after they are requested.
- Uploaded GPX files and routes you have not saved are never written to disk.
- Deleting your account takes effect immediately and cannot be undone: your profile, preferences, saved locations, saved routes, notification settings, sessions, sign-in history and sign-in credentials are all erased. There is no grace period and no backup copy we can restore for you.
Your rights
Under the GDPR you can ask us for access to your data, correction of anything wrong, deletion, a portable copy in a machine-readable format, or restriction of processing. You can object to the processing we base on legitimate interests, and you can withdraw consent for digest emails at any time without giving a reason. You can also complain to the data protection supervisory authority in the EU country where you live or work.
Most of it you can do yourself and immediately. Settings lets you change your display name, units, timezone, home location and ride preferences, manage your saved locations, and turn digest emails on or off; saved routes are listed on the Routes page, where you can delete any of them. Settings → Account deletes your account outright. For access, a portable copy, an objection or anything else, email us and we will answer within one month. RideWindow is run by an individual, not a company, and that mailbox reaches the person responsible directly.