FitInspector

Privacy Policy

Effective: October 30, 2026

FitInspector is a small independent project built by two developers (see Contact, below), not a company with a legal team. This page explains in plain words what happens to your data when you use it.

The short version

There are no accounts and no database. Your photos and videos never leave your device. The measurements you type in are used once, to calculate your result, and then forgotten. The only thing that can track anything about your visit is an optional, off-by-default analytics tool you have to actively accept.

Body measurements and form inputs

The numbers you type into the bike fit and tire pressure forms (height, inseam, arm length, shoulder width, rider weight, tire width and so on) go to our server only to calculate your result. They are not written to a database, a log file, or anywhere else. Once the response reaches your browser, we no longer have them.

Photos and video (pose detection)

If you use the photo-measurement or Check Position features, the actual pose detection runs entirely inside your browser, using an on-device library (MediaPipe) — your photo or video is never uploaded anywhere. Only the numeric results of that detection (joint coordinates and image dimensions, not image pixels) are sent to our server so it can compute the same body measurements or position check it would from manually-typed numbers. Those numbers are discarded after the response is sent back, exactly like the measurements above.

PDF reports

When you download a PDF of your result, the PDF is created inside your browser from the result already on your screen. Nothing is sent to our server to make it.

Analytics

We use PostHog, a privacy-focused analytics service (hosted on EU servers), to understand which parts of the app people actually use — but only if you click Accept on the consent banner. Until you do, no analytics code loads at all. If you accept, PostHog's autocapture records usage data that isn’t tied to your name: pages visited, buttons clicked, and general technical details like browser and screen size — by default, it does not record the values you type into form fields. It never receives your measurements or photos, which aren't part of any analytics event we send. You can decline at any time, and can change your mind later by clearing your browser's site data for this page.

What's stored on your device
  • A few small things are kept only in your browser, in local storage or cookies:
  • Your light/dark theme choice
  • Your selected language
  • Your unit choice (metric or imperial), kept for up to a year
  • Your analytics consent choice (Accepted / Declined)
  • If you accept analytics: PostHog's own identifier, in a cookie and local storage
  • Your most recent fit and tire-pressure results, the settings of your last position check (discipline, riding level, flexibility) and your wheel size, in session-only cookies that are deleted when you close your browser. They let a page reload keep your result: your browser sends them back to our server so it can show the result again, and the server doesn't store them.
  • The measurements and settings from your last bike fit calculation, in this tab's session storage, so the fit constructor can start from them. They never leave your browser and are deleted when you close the tab.
  • Clearing your browser's site data for this page resets all of these.
What we don't do
  • We don't create accounts or ask you to sign up for anything
  • We don't sell or share your data with advertisers
  • We don't run cross-site ad-tracking or retargeting pixels
  • We don't keep a history of your results on our servers. Your browser keeps only your most recent result, and only until you close it
Hosting and standard server logs

FitInspector is hosted on Vercel. Like almost any host, Vercel keeps standard request logs (such as IP address and time) to serve the site and keep it running. FitInspector doesn't collect these logs and can't see them in a form that identifies you.

On Shopify stores: for shoppers
  • Some online stores built on Shopify offer FitInspector in a drawer on their pages. Everything above still applies. On those stores:
  • The drawer loads FitInspector from fitinspector.com. Your photos and videos stay on your device, and your measurements are used only to calculate your result.
  • Your result is shown to you. FitInspector passes it to the store only if the store has turned on result sharing. Then each finished result is passed to the store's page as a Shopify customer event, and the store decides what to do with it under its own privacy policy. A shared result contains the calculated values (such as the recommended size, your riding-position angles with their targets and the adjustment recommendations, or tire pressures) and the body measurements used for them (such as height, inseam, and thigh and shin length). It never contains your photos or videos, joint positions, rider or bike weight, or your name, email or account number. FitInspector itself stores none of it. Apart from this, the only thing the drawer tells the store's page is that you closed it, and that message contains no data.
  • Our optional analytics never load inside a store's page.
  • The store passes FitInspector the language you are browsing in, metric or imperial units (which can depend on the country selected in the store) and its own colors, so that FitInspector matches the store. Nothing else about you is passed.
  • When you open FitInspector, the store's page asks our server whether FitInspector is available on that store. The request includes the store's ID. Shopify forwards it and adds the store's address and, if you're signed in to a customer account on that store, your customer account number. We answer using only the store's details and don't store your customer account number. It is only checked as part of Shopify's signature, and like any request it may appear in our host's standard request logs (see "Hosting and standard server logs").
  • Inside a store's page, most browsers block the cookies described under "What's stored on your device", and then nothing is kept. Where a browser allows them, they work as described there.
  • Everything else on the store's page is covered by the store's own privacy policy and by Shopify's.
On Shopify stores: for merchants
  • If you've installed the FitInspector app on your Shopify store:
  • The FitInspector page in your Shopify admin reads only your store's name, its myshopify.com address and its store ID, to show you the setup steps. FitInspector has no access to your products, orders, customers, theme files or cart. Its only permission is the one the availability check needs (write_app_proxy).
  • When you open FitInspector in your admin, Shopify gives it a short-lived token for that visit. Shopify's response also includes basic details of the signed-in staff member. We use the token once, to read your store's name, and then discard it. We never store the token or the staff details.
  • Shopify handles your FitInspector plan and payment, and we never see your payment details. To check whether a store's plan is active, our server asks Shopify and briefly keeps the answer in server memory, keyed by the store's address and ID: whether the plan is active, the plan name and any trial end date. Active answers are kept for up to 15 minutes and inactive ones for up to 1 minute. If Shopify can't be reached, the last answer may be reused for up to 24 hours. It is never written to a database or to disk, and it's gone when the server restarts.
  • Shopify sends every app automated privacy requests: when a customer asks for their data or for it to be deleted, and when a store uninstalls. These requests can include a customer's contact details and order numbers. Our server checks that each request really comes from Shopify and acknowledges it. FitInspector holds no data about your store or your customers, so there is nothing to return or delete, and we don't store the requests.
  • When you uninstall FitInspector, there is nothing left on our side to delete except the short-lived plan answer in server memory, which expires on its own.
  • Result sharing is off by default. If you turn it on in the FitInspector app embed settings, each finished result is published on your storefront as the Shopify customer event fitinspector:result, which you can use in Settings, then Customer events. FitInspector does not store these results or send them anywhere else. If you link them to customers or orders, or send them to other services, describe this in your own privacy policy.
  • You may want to mention in your own privacy policy that shoppers can use FitInspector on your store, and link to this page.
Your rights

There's no account and nothing is stored under your name, so there's very little data for us to find, export or delete. Most of what this page describes is gone by the time you read it. The one exception is analytics: if you've accepted tracking and want your PostHog analytics events reviewed or removed, contact us (below) and we'll help, or reach out to PostHog directly. If you're in the EU/UK, these are broadly the same rights GDPR describes (access, rectification, erasure, objection) — we just don't have much to act on beyond the analytics case.

Children's privacy

FitInspector isn't directed at children. The "kids" discipline option is for sizing a child's bike, entered by a parent or guardian — the app never collects information about a child as a user, since there's no account for anyone, child or adult.

Changes to this policy

If what we collect or how we use it changes, this page will be updated and the effective date above will change with it. We won't quietly narrow your protections without saying so here.

Contact

Questions about this policy, or a request related to analytics data? Email support@fitinspector.com.

Terms of Use