Privacy Policy
INTRODUCTION
This Privacy Policy explains how information is handled when you use TransitLens.
DATA COLLECTION
GTFS files uploaded or imported by users are processed entirely within the browser using a Web Worker. They are never transmitted to any server controlled by the author.
The application stores UI preferences (theme, layout, panel positions) in your browser's localStorage. This data stays on your device and contains no personal information.
If you create an optional account, more is stored. See ACCOUNTS below. GTFS files are never uploaded, with or without an account.
We keep a record of which paid features an account uses and which plan limits it reaches, to run the free trial and the paid plans and to decide what to build. Each individual record is kept for 90 days, and daily totals are kept after that. All of it is deleted with the account.
ACCOUNTS
Creating an account is optional. Everything you can do as a guest works without one.
If you create an account, TransitLens stores the following in a Cloudflare D1 database it operates:
- Your email address, and your first and last name if you give them
- How you sign in (email code, Google or Microsoft), and the account identifier Google or Microsoft gives us when you use them
- Your sign-in sessions: a device label, your browser's user agent, and when each session was created and last used
- The approximate country, region and city you signed up from, derived from your connection at the time
- Anything you save to your account: your feed library (feed names and the addresses they were loaded from), snapshots, bookmarks, and your answers to the optional onboarding questions
- Your notification choices, including whether you want the trial check-in email described below
- A log of security events on your account, such as sign-ins and sign-outs
- A SHA-256 hash of your email address, used only to give each address one free trial. It is kept after you delete your account, so that the trial cannot be repeated
When you sign in with Google or Microsoft, that provider shares your name and email address with TransitLens. Sign-in codes are sent by email through Resend.
You can delete your account at any time from Privacy & Data in your account. This permanently deletes the account and everything saved to it, apart from the trial hash described above. If you have an active Pro subscription, cancel it first.
EMAILS WE SEND
If you create an account, TransitLens sends you email from [email protected] through Resend. Replies to the welcome, trial and check-in messages below reach [email protected]. The messages are:
- Sign-in codes, and a notice if the email address on your account is changed
- A welcome message when your account is created, which says when your free Pro trial ends
- A reminder about 3 days before your trial ends, and another on its last day
- One check-in message, once per account, around day 5 of your trial if you have not been back since your first day. It asks what you were trying to do and whether it worked. You can turn it off under Account, Notifications, or reply and ask us to stop
- A confirmation when you delete your account
We do not send advertising, and we do not sell or share your email address. We do not email people who have not created an account, written to us, or asked to hear from us.
PAYMENTS
TransitLens Pro is sold by Lemon Squeezy as the Merchant of Record. Your card or other payment details go directly to Lemon Squeezy, are processed under its own privacy policy, and are never seen or stored by TransitLens.
To provide Pro, TransitLens receives from Lemon Squeezy and stores your plan, subscription status, renewal or end date, the email address used at checkout, and a record of each payment (amount, currency, date and whether it was refunded).
If you activate a license key, it is checked against Lemon Squeezy through TransitLens's servers, and the purchaser email linked to the key is stored so that the key cannot be activated by someone else.
FEEDBACK
When you voluntarily submit feedback through the in-app form, the following information is collected:
- Your message text
- Email address (only if you choose to provide one)
- Browser information (user agent string, page URL)
- Diagnostic data such as console logs (only if you opt in)
- Screenshot attachments (only if you choose to attach them)
This data is stored on Cloudflare R2 infrastructure and used solely to review and respond to your feedback. Feedback notifications are delivered via the Resend email service.
No feedback data is collected automatically — it is only sent when you explicitly submit the feedback form.
GTFS PROXY
When importing a GTFS feed from a URL, the application may route the download through a proxy server to handle CORS restrictions. The proxy streams the feed data directly to your browser without logging, storing, or inspecting any request data. No IP addresses, URLs, or feed content are retained by the proxy.
ANALYTICS
This site uses third-party analytics to understand how it is used and to find problems. They do not run on localhost or private-network addresses.
PostHog records page views, when you leave a page, and two clicks: following a link to the app, and following a contact link. Automatic capture of every click and form field is switched off. PostHog also records replays of your session. Its identifier is stored in a cookie and in your browser's local storage, and the data is sent to PostHog's United States region.
Microsoft Clarity records your session (mouse movement, clicks, scrolling and the page as it was drawn on your screen) so that it can be played back, and aggregates those sessions into heatmaps. Anything typed into a form field is masked and never reaches Clarity. Clarity keeps replay data for 30 days, and click and heatmap data for 13 months. It is operated by Microsoft under its own privacy policy.
Cloudflare Web Analytics counts page views, referrers, country and browser, in aggregate. It is added by the hosting platform, sets no cookies, and does not build a profile of individual visitors.
Each provider processes this data on its own infrastructure, under its own privacy policy. That processing takes place outside the European Economic Area, including in the United States. None of it is sold, and none of it is used for advertising.
Turning analytics off. Setting the browser-storage key "disable_analytics" to "true" stops PostHog and Clarity on this site: nothing is loaded and nothing is sent. In your browser's developer console run localStorage.setItem('disable_analytics', 'true') and reload the page. To turn them back on, run localStorage.removeItem('disable_analytics') and reload. Cloudflare's page counter is added by the hosting platform and continues either way; it is cookieless. This choice is stored per browser and per device, and clearing site data resets it.
The TransitLens app at app.transit-lens.com asks before it loads any analytics, and has a Product analytics switch in its settings. This site does not ask yet.
In the app, if you are signed in and have agreed to analytics, PostHog attaches your name, email address, plan, account creation date and, if you provided them during setup, your job function and organization name and type to your profile there, and Microsoft Clarity shows your name or email as a label on your replays. This does not apply when you are signed out. Turning Product analytics off in the app's settings stops all of it and, while you are signed in, unlinks your account.
COOKIES
This site sets no advertising cookies and takes part in no advertising networks.
Microsoft Clarity sets two first-party cookies, "_clck" and "_clsk", so that it can recognise your browser across pages and group activity into a session for replay. Uploading a recording also contacts Microsoft's own clarity.ms domain, which Microsoft may use to set an identifier under its own privacy policy.
PostHog sets one first-party cookie, holding the identifier it uses to recognise your browser.
Cloudflare Web Analytics is cookieless.
The analytics opt-out described above prevents the Clarity and PostHog cookies from being set at all, and clearing your site data removes any already stored.
THIRD-PARTY SERVICES
The application loads third-party libraries from unpkg.com and fonts from Google Fonts (fonts.googleapis.com / fonts.gstatic.com). These third-party services may collect standard request data (such as IP addresses) according to their own privacy policies.
LOG DATA
The hosted application infrastructure (GitHub Pages) may collect standard server logs such as IP addresses for operational and security purposes. The author does not access or process this data directly.
DATA SECURITY
Feedback data and account data are stored securely on Cloudflare infrastructure and only sent over encrypted connections. GTFS data and UI preferences remain on your device and are not transmitted to or retained by the author.
CHANGES
This Privacy Policy may be updated from time to time. Continued use of the Software constitutes acceptance of the updated policy.
CONTACT
For privacy-related inquiries: [email protected]