Last updated: 12 October 2026
Privacy
Who we are
Beautiful Trains is made by Dutch Spaghetti Software Ltd, 5 Central Way, Oxted RH8 0LS, United Kingdom. We are the data controller for the personal data described here. Privacy questions: hello@beautifultrains.app.
What this app does
Beautiful Trains shows live UK train departures and journey times using data from National Rail Enquiries and the Rail Data Marketplace, and can send you a notification when a journey you have set up is delayed or cancelled. It uses your location, with your permission, to suggest your nearest station.
Data we collect, and why
Location
When you allow location access, the app works out your nearest station on your device. Your coordinates never leave your device. If you open the nearest station's departure board, that station's three-letter code is recorded in analytics like any other board you open; nothing marks it as coming from your location. If you grant only approximate location, the app says so and treats the suggestion as approximate. The analytics described below also record whether location permission is on, off or not yet asked.
Lawful basis: none is needed for your coordinates, because we never receive them; the station code is covered under Analytics below.
Journey alerts
If you set up a journey alert, our server stores the alert's stations, days of the week, departure time, how far ahead to notify you, whether it tracks one specific train, and your device's Apple push-notification token, so it can check your journey against live running information and send you a notification. Alerts are checked and delivered by our server (hosted by Supabase in London) and Apple Push Notification service. The notification itself contains the departure time, the route and the delay or cancellation text.
An alert is kept until you delete it, until Apple tells us the token is no longer valid, or if you haven't opened the app (with notifications allowed) for 30 days — opening the app with notifications allowed, or saving an alert, counts as using it. If you restore your iPhone from a backup, or Apple gives your device a new push token, your alerts move to it automatically. If you delete the app, its alerts stop and are removed from our server within 30 days. You can delete an alert at any time in Settings → Journey Alerts.
Lawful basis: performing the service you asked for (contract).
Analytics
We use PostHog (EU data centre) to understand how the app is used so we can improve it. Events can include raw three-letter station codes for departure boards, journey origins and destinations, restored journeys and journey-alert routes, together with operational details such as result counts, selected time mode, alert settings, subscription screens and purchase outcomes (shown, converted, dismissed, restored or failed), onboarding steps shown, completed or skipped (never the stations you chose as home or work), uses of Beautiful Trains+ features and whether you are subscribed, and whether the nearest-station lookup succeeded. PostHog also records app lifecycle events (installed, updated, opened, backgrounded), the screens you view, and technical details such as device model, iOS and app version, language, time zone, screen size and network type, plus whether notifications, location and Background App Refresh are enabled. It also receives timings of how long the app takes to start and to show departure boards and journey results (including how long our server spent on each step), and Apple's daily summary of launch times, so we can find and fix slow spots.
The app creates a random identifier when first installed and gives it to PostHog and Sentry, so events and crash reports from one installation can be linked. It is pseudonymous — it does not contain your name, Apple ID, email address or any device serial — and it is restored if you restore your iPhone from a backup. Repeated route events can reveal travel patterns even though they are not linked to a person.
PostHog receives your IP address with each upload. We have configured PostHog to discard it. When the app starts it also asks PostHog for its configuration; today this may send the installation identifier even if you have turned analytics off (we are changing this so it uses a fresh random identifier instead).
You can turn analytics off in Settings → Privacy → "Share usage analytics". It is on by default. We do not use analytics to track you across other companies' apps or websites, and we do not use advertising identifiers.
Lawful basis: our legitimate interest in understanding and improving the app, relying on the statistical-purposes exception in the Privacy and Electronic Communications Regulations (as amended by the Data (Use and Access) Act 2025). This law lets apps collect usage statistics without asking first, provided we tell you and let you switch it off for free. You have the right to object at any time — the toggle above does exactly that.
Crash reports and performance
Sentry (EU data centre) receives crash reports and diagnostics used to investigate reliability problems: device model, iOS and app versions, stack traces, train service IDs, recent diagnostic breadcrumbs that can contain raw station codes or route pairs, and, for a sample of sessions, performance traces that include the addresses of requests the app made (these can contain station codes). Sentry is configured not to store IP addresses. Crash reports carry the same pseudonymous installation identifier as analytics. Station and route context is used only to reproduce and fix faults. Our server also sends Sentry diagnostics about failed train-data requests, which include the stations or train involved but no device identifier.
You can turn crash reporting off in Settings → Privacy → "Send crash reports". It is on by default.
Lawful basis: our legitimate interest in finding and fixing faults. Storing crash data on your device relies on the exception in the Privacy and Electronic Communications Regulations for detecting technical faults; performance traces rely on the statistical-purposes exception described above. You can object at any time with the toggle above.
Feedback
If you send feedback from the app, we receive your message, the category you chose, the app and iOS versions and your device model, delivered to us by email through Resend. If you add a reply-to email address, we receive that too and use it only to reply to you. To limit abuse, the app also sends a one-way hash derived from your device, which lets us allow one submission per day; that hash is deleted within 37 days. Feedback emails are deleted after 12 months. Analytics also records that feedback was sent, its category and whether you added an email.
Lawful basis: performing the service you asked for (answering you) and our legitimate interest in preventing abuse.
Service protection and request logs
Our servers see your IP address when the app requests train data. We use it to limit excessive requests; those rate-limit records are deleted within 3 hours. If a request is blocked as abusive, its IP address is kept in a security log for 90 days. Separately, our hosting provider's request logs record your IP address, an approximate location derived from it (city, country, network), your device's user agent and the station codes or journey requested, for 7 days.
Lawful basis: our legitimate interest in keeping the service available and secure.
Purchases
To check whether you have Beautiful Trains+, the app contacts RevenueCat each time it starts, sending a random RevenueCat identifier (not the analytics identifier), your IP address and basic device and app details. If you subscribe to Beautiful Trains+, your purchase is processed by Apple and managed through RevenueCat. We receive your subscription status and product, which are also recorded in analytics, but never your payment details. Purchase history is linked to your Apple ID as part of the standard App Store subscription process.
Lawful basis: contract.
Data we do not collect
- Your name or Apple ID — there is no account (the only email address we receive is one you choose to add to feedback)
- Your precise GPS coordinates
- Which stations you saved as home or work: that label stays on your device. When the app or a widget loads a board for those stations, the request is logged like any other, as described above.
- Any data from other apps on your device
- Advertising identifiers; we do not track you across apps or websites
Who processes your data, and where
| Service | What it does for us | Where | Privacy policy |
|---|---|---|---|
| Supabase | Hosts our server, database and request logs: train-data requests, journey alerts, feedback rate-limiting | London, UK (database); request logs: UK | supabase.com/privacy |
| Apple Push Notification service | Delivers journey-alert notifications | Apple (global) | apple.com/legal/privacy |
| PostHog | Product analytics | EU | posthog.com/privacy |
| Sentry | Crash reporting and performance | EU (Germany) | sentry.io/privacy |
| RevenueCat | Subscription management | United States | revenuecat.com/privacy |
| Resend | Delivers feedback to us by email | EU (Ireland) | resend.com/legal/privacy-policy |
| Apple App Store | Takes payment (Apple's own privacy policy applies; Apple is the controller for payments) | Apple (global) | apple.com/legal/privacy |
| National Rail Enquiries | Live train data (our server asks on your behalf; they do not receive anything about you) | UK | nationalrail.co.uk |
| Rail Data Marketplace (Rail Delivery Group) | Train formation, historical performance and station data (our server asks on your behalf; they do not receive anything about you) | UK | raildata.org.uk |
International transfers. RevenueCat and Apple process data in the United States. These transfers rely on the UK International Data Transfer Agreement or the UK Extension to the EU–US Data Privacy Framework, as applicable to each provider. PostHog, Sentry, Supabase and Resend store our data in the UK or the EU.
How long we keep data
| Data | Kept for |
|---|---|
| Journey alerts (route, schedule, push token) | Until you delete the alert, Apple reports the token invalid, or you haven't opened the app (with notifications allowed) for 30 days; if you delete the app, within 30 days |
| PostHog analytics events | Up to 12 months |
| Sentry crash reports and diagnostics | Up to 90 days |
| Feedback emails | 12 months |
| Feedback device hash | Up to 37 days |
| Feedback delivery logs at Resend | Per Resend's own retention policy |
| Rate-limit records | Up to 3 hours |
| Security log (blocked requests) | 90 days |
| Hosting request logs | 7 days |
| Purchase records | Held by Apple and RevenueCat as needed to provide and restore subscriptions |
Your rights
Under UK data protection law you have the right to access the personal data we hold about you, to have it corrected or erased, to restrict or object to its processing, and to data portability where it applies. You also have the right to complain to the Information Commissioner's Office (ico.org.uk).
In practice:
- Analytics and crash reports: turn them off in Settings → Privacy. Deleting the app stops future collection from that installation but does not delete events already held by PostHog or Sentry; because there is no account, we usually cannot match retained events to you. Tell us the approximate dates and we will delete what we can reasonably identify.
- Journey alerts: delete them in Settings → Journey Alerts. If you no longer have the app, email us the alert's route and time and we will remove it.
- Location: change it any time in iOS Settings → Privacy & Security → Location Services → Beautiful Trains.
- Feedback: email us and we will delete your message.
You are not required by law or contract to provide any of this data; if you decline location or notification permissions, or turn off analytics and crash reports, the app still works, with those features reduced. We make no automated decisions about you.
Children
Beautiful Trains is rated 4+ and does not knowingly collect data from children.
This website
This website, beautifultrains.app, uses Cloudflare Web Analytics to count visits. It is cookieless and does not track individuals. The website sets no cookies.
Changes
We show the date of the latest version at the top of this page and, for significant changes, tell you in the app.
Contact
For privacy questions: hello@beautifultrains.app