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