← Back to the map

Privacy

What this site does with information about you, who is responsible for it, and what you can ask for. It is written to be read, and it describes what the code actually does.

Last updated 15 September 2026.

Who is responsible

Worthing Brighton Bus is run by Connor R, a volunteer, who is the data controller for the information described here. For anything about your information, including a request to see it or have it deleted, email privacy@worthingbrightonbus.co.uk. You do not need to use the public issue tracker for this, and you should not put personal details there.

In short

What is collected, and why

Visiting the site

Pages are served by GitHub Pages. Live departures and timetables come from this project's own server on Render, which receives the stops and services you look at. Map pictures come from the OpenStreetMap Foundation's tile servers, which publish anonymised, aggregated figures about which tiles are used. Each of these sees your IP address, as any website you visit does, and keeps short technical logs under its own policy. Journey planning sends the coordinates of your chosen stops or location as described below; search text stays in your browser.

Why: to show you the site and keep it running (legitimate interests).

Planning a journey from your location

The journey planner's location button asks your browser for your position. When you submit a plan, coordinates rounded to four decimal places are sent to our server on Render and forwarded to Buses & Trains, the routing provider. Typed stop choices also send the selected stops' coordinates. This differs from “Stops near me”, which finds nearby stops on your device.

We use these coordinates to answer your request and temporarily cache the plan for up to five minutes. They are not sent to our visit analytics. The deployment is configured to disable application request access logs to avoid recording location query strings; we have not yet confirmed that the running service uses this setting. Hosting and routing providers may retain technical records under their own policies; we have not verified their retention periods. You can use manually selected stops instead.

Counting visits

Visits, and a short list of things people do here, are counted by GoatCounter: which part of the site is opened, a journey checked, a councillor letter opened or passed to an email app, a form sent, a gap alert shown, the coast-road gap card opened, a stretch of road opened on the delay map, the live service being woken up, an accessibility setting changed, and "stops near me" used (that it was used, never where you were). GoatCounter sets no cookies, does not keep your IP address and keeps totals rather than a history of anyone's visits. Its servers are in Finland and Germany. Postcodes, letters, the stops you look up and anything else you type are never sent. If your browser asks not to be tracked, with Do Not Track or Global Privacy Control, the counter is not loaded at all. Content blockers usually stop it too, so the numbers are an undercount.

Why: to see which parts of the site are used, so it can be improved (legitimate interests; counting of this kind for statistics does not need consent under the Privacy and Electronic Communications Regulations, provided you can object, which you can here).

Checking whether visits from this browser are counted…

Sending an idea, a route, news or a report

What you type, the optional name you give, and details of the stop or bus you were looking at go to a Cloudflare Worker run by this project. Cloudflare Turnstile checks you are not an automated script, which means Cloudflare receives your IP address and some technical details of your browser. The submission is then stored as an issue in a private GitHub repository that only the project can see.

A person reads it. If it is approved, it is published on this site, with the name you gave if you gave one. You tick a box to confirm you understand this before sending. To stop the forms being abused, your IP address is combined with a secret and scrambled (hashed), and a count is kept against that hash for up to two days. The address itself is never stored. Cloudflare keeps a few days of technical logs about requests to the Worker, which can include your IP address; the Worker itself only logs errors, never what you sent.

Why: publishing what you send, with your name, relies on your consent, which you can withdraw by emailing the address above. The anti-abuse checks rely on legitimate interests. Please don't include anyone else's personal details, and if you are under 13, please leave the name blank.

Emailing your councillor

The postcode you type is sent from your browser to postcodes.io to find which ward and electoral division you are in. Nothing is stored by this site and nothing is sent anywhere else. The draft letter is composed in your browser and handed to your own email app. This site never sees it and never sends it.

Councillors' names, wards and published contact details come from each council's own member directory, because contacting them is what the tool is for. That is information about their public role (legitimate interests). A councillor who finds something out of date can email the address above.

Reporting an error on GitHub

The "Report an error" link opens this project's public issue tracker on GitHub. Anything posted there is public, under your own GitHub account and GitHub's terms, which is why personal requests should go by email instead.

Cookies and browser storage

This site sets no cookies. It keeps a few settings in your browser's local storage, only because you chose them, and they never leave your device:

Stored itemWhat it remembers
darkModeLight or dark theme
a11yText size, reduced motion and colour-blind-safe colours
hiddenOperatorsWhich bus operators you have hidden on the map
proposalDraftsRoute proposals you have drawn but not sent
analytics-opt-outThat you have switched visit counting off
jt-viewWhether you last used the simple or detailed journey times view

Storage you ask for is exempt from consent, so there is no cookie banner. Cloudflare Turnstile, which appears only on the forms, gathers signals that Cloudflare describes as strictly necessary for detecting automated abuse. Clearing your browser's site data removes everything in the table.

How long it is kept

InformationHow long
Submissions not approvedDeleted within 30 days of the decision
Approved submissionsPublished for as long as they are relevant, or until you ask for removal
Anti-abuse hash of your IP addressUp to two days
Visit countsKept as totals by GoatCounter while the site runs
Hosting and network logsA few days to a few weeks, under each provider's own policy

Who else handles it

GitHub (hosting the pages and the private submissions inbox), Cloudflare (the Worker, anti-abuse checks, and email forwarding for the address above), Render (the live data server), GoatCounter (visit counting), the OpenStreetMap Foundation (map pictures) and postcodes.io (postcode lookups). Several of them are based in, or process data in, the United States; each does so under the safeguards set out in its own data processing terms. Nothing is sold, and nothing is shared for advertising.

Your rights

Under UK data protection law you can ask to see the information held about you, have it corrected or deleted, restrict or object to how it is used, and take back consent you have given. Email privacy@worthingbrightonbus.co.uk and you will get an answer within one month. In practice, almost everything this site holds about a person is a submission, and removing one is simple.

If you are not happy with the answer, you can complain to the Information Commissioner's Office at ico.org.uk/make-a-complaint or on 0303 123 1113.

Changes

If what the site does with information changes, this page changes with it, and the date at the top moves. The history of every change is public in the project's code repository.