JST Fitness — Privacy Policy

Last updated: 17 October 2026

What changed on 17 October 2026. On Android, the app now scans barcodes with its own camera screen, the same one that reads a nutrition label or a restaurant menu, instead of a scanning screen of Google's, so it asks for the camera the first time you scan a barcode too. While it looks for a barcode, it reads a few small pictures a second on your phone with Google's barcode reader, drops each one at once, and keeps only the code it finds; a food's barcode number goes to Open Food Facts as before. Google's barcode reader reports the same kinds of technical diagnostics about itself that its scanning screen did. Earlier the same day, this policy was rewritten as one launch edition naming JST Fitness LLC as the company responsible for your data. Earlier versions are kept on file; email [email protected] for a copy of any of them.

JST Fitness is a workout, nutrition and body-weight tracker for Android. Until an iPhone app exists, the same app also runs in a phone's browser at jst-fitness.vercel.app, and this policy covers that web version too. It explains exactly what the app stores, what leaves your device, and what it never touches. It also covers what our website, jstfitness.com, keeps if you join the waiting list for the app's launch: your email address, and when and where you joined.

Your health data also has its own policy. Everything you record about your body — your weight, your measurements, your food and your workouts — is covered by the Consumer Health Data Privacy Policy as well as by this one. That document was written for Washington's My Health My Data Act and Nevada's SB 370, and everything it promises is true for everyone, wherever you live.


At a glance

Everything that leaves your device is listed in full below. And beyond the request logs any website's host keeps, our website keeps something only if you join its waiting list: your email address, with when and where you joined, kept only to email you once, when the app launches, and never shared or sold ("The waiting list on our website" below).


Who is responsible for your data

JST Fitness is run by JST Fitness LLC, a Florida limited liability company ("we", "us"). It was founded by two people, its founder and a co-founder, who run it. JST Fitness LLC is the "data controller" in GDPR terms — the party responsible for what happens to your data — and its founder is the person to write to about it:

Tristan Allard Email: [email protected]

His co-founder helps run the app and signs in to the same internal support page he uses. That page shows each account's email address, when the account was created, when it last signed in and last synced, and whether it is on a trial or a plan; which accounts are being closed under the age rule; the feedback messages and crash reports we receive, and our support tickets about them; reports about shared foods, and the block list; and the sign-in records behind the country counts in section 1. It does not open the fitness, body or food data you sync.

We have no data protection officer (none is required at this size), and no EU representative.


What is stored on your device

By default, everything the app records stays in local storage on your phone and is never uploaded (in the web version, "your phone" is your browser's storage on that device; "What leaves your device" below says what cloud sync uploads if you agree to it, and what stays here even then):

Uninstalling the app removes all of this from your device. (In the web version, clearing the site's data in your browser does.)

What leaves your device

There are nine. Your account is the one you cannot do without: the app needs one to sign in. Cloud sync and five more happen only when you choose them; one is automatic — a short diagnostic report sent when the app hits an error, so it can be fixed. The ninth is neither optional nor numbered below: the demonstration clips your phone streams while you use the workout library. It is described at the end of section 1, with the rest of the library. Separately, Google's own software in the app reports technical diagnostics about itself to Google when you use it — its barcode reader when you scan a barcode (section 2), and its text reader when you have the app read a nutrition label or a restaurant menu ("Barcode scanning and the camera" below); none of it comes to us.

1. Your account, and cloud sync only if you switch it on

Your account

You need an account to use JST Fitness: an email address and a password, or Google sign-in. Giving one is what makes the agreement our Terms describe, so without one there is no account and the app cannot be used. JST Fitness uses Supabase as its authentication and database provider, and your account is kept there:

Passwords are handled and hashed by Supabase; the app never stores your password. Our server also keeps a one-way scrambled record that your email address has had its free trial ("How long data is kept" says what it is and how long it stays).

If you sign in with Google instead, Google returns your email address, your name and a link to your Google account picture to create the account, and Supabase keeps them with it. Unless you set your own photo, Profile shows that picture, and your phone loads it from Google each time, which shows Google your IP address as any picture on the internet does.

Two-step sign-in, once the app offers it. The app does not offer it yet; before an update offers it, this policy will say what it keeps.

Signing in carries your IP address, the way every request over the internet does, and Supabase records it against your session. That is what keeps you signed in, and what lets a stolen sign-in be told from a normal one. We also do two things with those addresses, both on our internal support page (the one "Who is responsible for your data" describes), and both only ever by country.

The first counts how many sign-ins came from each country, so we can see where the app is being used. The second counts how many accounts on a trial or a paid plan last signed in from each country, so we can see where the people actually using it are. That second one means that, for the moment the page is drawn, an account is matched to the country its last sign-in came from.

Both counts are worked out as the page is drawn and nothing is written down: no city, no coordinates, no map of any one person, and no stored record of where any account signed in from. Neither is ever attached to your weight, your food, your workouts or anything else in this policy, and neither leaves that page. Deleting your account deletes your sessions, and those addresses with them. (Every request also passes through our hosting provider's routine server logs, which keep what "How long data is kept" describes.)

Cloud sync — only if you switch it on

Cloud sync is separate from your account, and nothing syncs until you agree to it. The app asks when you create your account, and you can switch it on or off at any time at Profile → Preferences → "Sync my data to the cloud". If you agree, most of what the app records is synced to the cloud so it follows you between your phone and your computer. That covers:

These stay on your device and are never uploaded: your step counts from Health Connect, your meditation log, your profile photo, the dates of any streak pause you set, the copy of your streak, this week's workout count and your routine names that the Android app keeps for its home-screen widget, the weekly report summaries listed above, and your device settings — timezone, date format, the day your week starts on, accessibility mode, the rest-timer sound, vibration and notification switches, the meal, hydration and weigh-in reminder switches and the times you set for them, the Health Connect switch for reading your scale's weigh-ins, the follow-along runner's countdown sound and buzz, the plate sizes and the bar you have told the plate calculator you own, whether a new set's boxes start pre-filled with what you lifted last time, whether your steps add to a day's calorie target, and whether you have asked the app to hide calorie numbers and show protein instead (it is in your backup file, and it changes only what the app shows you — your food log and targets are stored as before). So does everything Track route keeps on your phone — the location points of a set while it records, the drawings of the routes you record, and its notes of your answers ("Route tracking and your location" below); only the distance they measure leaves this phone, with your workouts. So do any names you give the four meal sections: they are in your backup file, and your food log keeps only which section each food is in, never the name you gave it. So do any different calorie targets you set for days of the week, under "Different days" — which days, and how many calories more or fewer than your everyday target: they are in your backup file, and of your targets, only the everyday one is synced. A second copy of the daily hydration goal you last typed in on this phone stays here too: a mark one achievement reads to tell a goal you chose from the one the app starts everyone on. The goal itself is listed under "What leaves your device"; the mark is not in your backup file. The fasting timer stays here too, if you switch it on: the hours of the day you chose to fast, whether to tell you when a fast ends, when your latest fast started, and whether the timer is on. It keeps that one fast only, never a record of the ones before it, and it is not in your backup file. Two marks the app keeps about its own walkthrough stay here too: whether it has already offered the walkthrough to you, and which of its chapters you have ticked off. They record what has been read on this phone, and they are not in your backup file either, so a new phone simply offers the walkthrough again. A date of birth under 18, if one is confirmed on this phone, stays here too ("What is stored on your device" above says why, and why it stays when an account goes).

The meditation log deserves its own sentence, because it is the one thing here we decided to keep off our servers rather than merely happening not to send. Every meditation you record — its length and the day you sat — stays on the phone it happened on, even if you have agreed to sync. It is in your backup file, so it is still yours to keep and move. Nothing is asked about how you felt, and there is nowhere in the app to say. Nothing derived from it leaves your device either: no achievement is earned from it, and nothing about your practice reaches us — not a session, not its length, and not which days you sat.

One small side effect, named rather than hidden. Sitting earns XP like everything else in the app, so the number of days you have sat is part of your level — and your level is one of the counts attached to a feedback message. That only happens if you tick the "include usage" box, which is off unless you turn it on, and the app shows you every number before you send it. Your level is a single figure that adds workouts, active days, completed goals, unlocked achievements and days sat together; it is not a record of your practice, and one number that several things went into cannot be unpicked back into any of them.

Switching sync off removes your copy from our servers, unless you keep it. When you switch off Profile → Preferences → "Sync my data to the cloud", the sync stops at once, and the app then asks what to do with your synced copy on our servers, and leads with removing it. "Remove my copy" removes everything the list above says is synced. Your account record stays (your plan, and your consent record, which then shows which wording you agreed to and when, that you withdrew it, and which versions of our Terms and this policy you accepted). That record is how we can show all of that, and how your other devices learn to stop syncing too. "Keep my copy on the server" leaves your copy where it is. Your account stays, and everything on your phone stays: before anything is removed, the app first syncs your copy down to your phone, the same way it does when you sign in, and switching sync back on uploads what your phone holds again. If the removal cannot finish — the app cannot reach our servers, or cannot check that your phone has all of your copy, say — the app tells you, and your copy stays where it is; it also stays if the app closes before you answer. Either way, while sync is off you can remove it later with "Remove my copy from our server", under the same switch. Another device of yours that still has sync on stops when it next connects, and anything it sends before then stays on our servers.

If you do not agree to sync, none of the data described above is sent to Supabase: only your account itself is there (your email address, its id, your name, your sign-in sessions, your consent record and your plan), and your fitness data stays on the device.

Two other things leave it whether or not you sync, and both are described in full below: the demonstration-clip requests in the next paragraph, and the automatic error diagnostics in section 4. Neither carries your fitness data. The diagnostics are on by default, and you can switch them off.

The first of those: exercise demonstration videos are streamed from our hosting (Supabase) when you open an exercise in the workout library, show the demo during a workout, or run a follow-along circuit — which streams the clip for each station in turn, and fetches the next one a few seconds early so it is ready when that interval starts. Like any video stream, each request necessarily carries your IP address. It is not linked to an account, and we build no record of which demos you watch. Like every request, they appear in our hosting provider's routine server logs, which Supabase keeps on its own schedule, not ours. Those logs also hold the app's signed-in requests, which carry your account's id, so for as long as they are kept they could link the clips fetched from your connection to your account, and because a circuit fetches its clips in order, they would reflect the shape of a session. We never use them to work out who watched what: we copy nothing from them, and look at them only to fix a fault, to investigate a security problem, or to check what they hold.

2. Barcode lookups — only when you scan a product

When you scan a food barcode, the barcode number is sent to Open Food Facts (openfoodfacts.org), a free public food database, to retrieve that product's name and nutrition information. The request carries nothing that identifies you or this app — just the barcode.

The request carries no account information or other app data — but like any request your device makes over the internet, it does reveal your IP address to Open Food Facts, along with the barcodes you choose to look up. Open Food Facts is a French non-profit and its own privacy policy applies to what it receives.

Nutrition data returned by Open Food Facts is contributed by its community and is used under the Open Database License (ODbL).

The barcode reader also reports to Google. The app reads a barcode with Google's barcode reader, on your phone, and whenever you scan — a food, or a membership card, which otherwise sends nothing anywhere — Google's software sends Google some technical information about the phone and the scan. "Barcode scanning and the camera" below says exactly what. It is not the code you scanned, and it does not happen if you never scan.

3. Password safety check — only when you choose a password

When you create or change a password, the app checks whether it appears in known public breach datasets using Have I Been Pwned.

This uses the k-anonymity range API: the app computes a SHA-1 hash of your password locally and sends only the first five characters of that hash. Your password, your full password hash, your email address and your identity are never sent. The service cannot determine which password was checked.

If you sign in with Google you choose no password, and this never runs.

4. Error diagnostics — automatically, when the app hits an error

If the app hits an error, it sends a short diagnostic report to our own Supabase database so we can find and fix the problem — including for people we can't otherwise reach, like someone using the web version. Unlike the three above, this one is not something you trigger; it runs automatically whenever something goes wrong.

A report contains:

It is not designed to include your name, email, or anything from your weight, workout, meal, or goal data — none of those are ever attached on purpose. One honest caveat: a stack trace is whatever text the failing code produced, and in rare cases an error message can embed a fragment of something you typed (for example, a value that failed to save). That is a side effect, not a collection channel: reports exist solely to fix bugs — never for advertising, profiling, or sale — and they age out quickly (below).

A word about that id, because "anonymous" would be too strong a word for it. The id is a random string that contains no name, no email and nothing about you — but it is stored on your device and reused, which makes it pseudonymous, not anonymous. If you later send feedback with your email attached, the same id rides along with it, and the account-deletion sweep uses exactly that link to find and delete your crash reports. Data that can be connected to you is personal data, and it is treated as such.

You can turn this off. Profile → Preferences → "Send crash reports" stops the app sending any error report from that device. Reports age out and are deleted after 30 days.

When we work on a report, its error message can be read by the AI tools we use to help find and fix problems, which are provided by Anthropic — see "Who processes your data", below. The report's diagnostic id is not sent.

5. Feedback you send us — only when you use "Send Feedback"

Profile → Send Feedback sends us what you type and the kind of message you picked (a bug, an idea or something else), plus the app version, whether you're on web or Android, your browser's user-agent string (the same device/OS line section 4 describes), and the same diagnostic id described above. Nothing is sent unless you write a message and press Send.

Before you send, the form says what goes with every message — your app version, your device type and this phone's diagnostic id — and that AI tools from Anthropic may help us read it. It also shows the two extras, and you can remove either with one tap:

The usage option never includes your weight, measurements, meals, goals, or the contents of any workout — counts only, never what you logged.

Feedback is kept until your message has been dealt with, and for at most 12 months; once a message is marked handled, an automatic purge deletes it 90 days after it was sent. A copy in our encrypted backups is gone within 14 days of that (see "How long data is kept"). When the message is purged, the same step blanks our own notes on it, any restatement of it our tools wrote on the support ticket, and the fix note that described it — so no paraphrase of your words outlives the message. What stays is ours by construction: the ticket's status, its labels and the code change that fixed it.

When we work on your message, the words you wrote can be read by the AI tools we use to help sort and fix what people report, which are provided by Anthropic — see "Who processes your data", below. Your email address, your diagnostic id and the usage counts are not sent with it.

6. Foods you choose to share — only when you switch sharing on

A food you add to the food list yourself can be shared with every other user of JST Fitness. Sharing is off for every food unless you switch it on, one food at a time, and only a packaged food with a barcode can be shared. Nothing happens for a food you never switched on. A food you looked up from Open Food Facts cannot be shared this way — it already lives there, under its own licence.

What is published — the product, and only the product: its name, brand, serving size, barcode, and the calorie, macro, fibre and sugar figures you entered from its label (a fibre or sugar figure above the shared list's own limit is left out). Its sodium and a drink's alcohol, if you entered them, are not published; they stay with the food in your own list. Other users see the product in their food list marked "Community", the way they see the app's own catalogue rows, and they can log it and report it. What they do with it never comes back to you.

What is never published: your name, your email address, your account, the fact that you were the one who shared it, whether you have ever eaten it, or anything from your food log — no dates, no quantities, no meals. There is no profile, no contributor name and no "shared by" line anywhere in the app.

What we keep privately, and why. Beside each shared entry our database keeps an internal reference to the account that shared it — not your email address and not your account id, but a scrambled value derived from it. It exists so that we can act on a report, correct a pattern of bad entries, and block an account that keeps submitting them (sections 5 and 10 of the Terms). It is never shown to anyone, inside or outside the app, and it is cut when you delete your account: the entry stays in the list, because other people's logs may already use it, and nothing on our servers connects it to you any more. The same happens if you switch sharing off again for a food you already shared. Because we could trace a scrambled reference back to you while your account exists, it is personal data, and it is treated as such — the same footing as the diagnostic id in section 4. Earlier versions of an entry are kept when it is corrected, so that what changed can be seen; they carry the same reference and lose it the same way.

What you agree to when you switch sharing on is set out in section 9 of the Terms: you dedicate the entry to the public, so it can be used by anyone, corrected, passed on to public food databases such as Open Food Facts, and kept after your account is gone.

Reports. Any user can report a shared entry from the food list. A report sends us the entry's identifier, the reason you picked, any note you typed, the app version and the same diagnostic id a feedback message carries. If you are signed in, our server adds the same kind of scrambled reference to your account described above, so that an entry is hidden automatically only once three different accounts have reported it; it is cut when you delete your account. Your email address goes with it only if you type it in: leaving it lets us tell you what we did; leaving it blank means you will not hear back. Reports are deleted 180 days after they are made, whether or not we have acted on them — a fixed period of their own, not the feedback schedule below.

7. Recipe imports — only when you import from a web page

In the Android app you can fill a recipe from a recipe web page. When you do, your phone fetches that page directly from the website and reads the recipe's name, its number of servings and its ingredient list, the way your browser would open it. The website receives the page address, your IP address, and the identifying line every browser sends — here it names your phone's Android version and browser engine (and often your phone's model) and says the request comes from JST Fitness. If the address forwards to another site, as a shortened link often does, that site receives the same. Nothing you have logged and no account information goes with it. No cookies are sent, and any cookie the website sets is cleared as soon as the import finishes, so no cookie links one import to the next — though, like any website, it can tell when requests come from the same IP address.

The request never passes through our servers, and the app does not record the page address. The import fills in the recipe's name, its number of servings and its ingredients, all of which you can change; what you then save is stored, and synced if you sync, like any recipe you build by hand. Nothing else from the page is kept — not the address, the instructions or the pictures. The website is an independent site you chose, and its own privacy policy applies to what it receives.

Pasting a recipe sends nothing anywhere: the text you paste is read on your phone, and only what you save is kept.

The waiting list on our website

Our website, jstfitness.com, is not the app. Like any website, the pages you open reach Cloudflare, which serves them, with your IP address ("Who processes your data"); beyond that, we keep nothing about you from it unless you join its waiting list. If you type your email address into the form there and press the button, we keep your email address, the date and time you joined, and which page you joined from (the holding page or the home page). Nothing else goes on the list: not your IP address, not your browser's details, and nothing that links it to an account in the app. Pressing the button does carry your IP address and your browser's identifying line to Supabase, as every request over the internet does; they appear in its routine server logs, which it keeps on its own schedule, and they are never added to the list. The form sets no cookie and stores nothing in your browser.

We keep it only to email you once, when the app launches. We will not send you anything else, it is not added to any other list, it is not shared with anyone, and it is not sold. It is kept in our Supabase database ("Who processes your data"), where only the people who run the app can read it; the form itself can add an address and do nothing else. The launch email will be sent through Resend, the service that sends the app's account emails, and it will carry a way to unsubscribe.

How long it is kept. We delete the whole list within 30 days after the launch email has gone out. And whatever happens, every address is deleted automatically 12 months after it was added.

Being removed. Email [email protected] from the address you joined with, or naming it, and we delete it; you do not need to give a reason. Your address on the list is separate from any account you have in the app: deleting your account does not remove it, and removing it does not touch your account.

The form gives the same answer whether or not an address is already on the list.

Health Connect: step counts and weigh-ins

Android's Health Connect is where your phone, your watch, your smart scale and your other health apps share their data (Samsung Health among them). JST Fitness can read two things from it, each behind a permission of its own that you grant separately: your daily step count, and your weigh-ins. It reads nothing else, and it writes nothing back.

Before the app asks Android for either permission, it shows you a screen setting out exactly what follows, and you can decline it. The two answers are independent: allowing one never allows the other, and you can withdraw either at any time in Health Connect's settings.

Step counts

Switched on by tapping the step ring on the home screen.

Weigh-ins from your scale

Switched on at Profile → Health Connect → Weigh-ins from my scale, and off by default. It exists so that a weigh-in on a smart scale is a weigh-in in the app without you typing it.

Nothing is written back. JST Fitness holds no permission to write to Health Connect — not your workouts, not your weigh-ins — so nothing this app records is added to it. Health Connect's own settings show you what JST Fitness may read and let you withdraw it at any time; the app carries on working without either permission.

Barcode scanning and the camera

Scanning a barcode, and reading a nutrition label or a restaurant menu, are all the app uses the camera for. On Android, the first time you do any of them the app asks Android for the camera — Android's own question — and the camera is on only while its screen is open. You can take the permission back at any time in Android's settings; the rest of the app does not need it.

Scanning a barcode. The camera button beside the food list's search box, and the one beside LOG MEAL on Home, open the camera with a switch at the bottom of the frame between Barcode and Menu; the recipe builder's barcode button and "Scan a card" under Membership Cards open it for barcodes alone. While the camera is open on Barcode, the app reads a few small pictures a second of what the frame on your screen shows, on your phone, with Google's barcode reader, and stops at the first barcode it finds. Each of those pictures is dropped as soon as it has been read: none is saved to your phone's gallery or anywhere in the app, uploaded, or sent to us or to anyone else. What the app keeps is only the code it found — the barcode's number, or a QR code's text. A food scan sends that number to Open Food Facts (section 2); a membership card scan sends it nowhere, and it stays on your phone only if you save the card.

Reading a nutrition label. When you add a food of your own and tap "Read the label", the app asks Android for the camera — Android's own question, the first time — and shows it on the screen. When you tap "Read the label" under the picture, it takes one picture of what the frame on your screen shows, reads the words and numbers on the label on your phone with Google's on-device text recognition, and fills in the food's figures for you to check and change before you add it. The picture is never kept: it is not saved to your phone's gallery or anywhere in the app, not uploaded, and not sent to us or to anyone else, and it is gone once the label has been read. The food you then add is the same record you would make by typing the figures yourself. The camera is on only while that screen is open, and you can take the permission back at any time in Android's settings; the rest of the app does not need it.

A restaurant menu is read the same way. On Android, the food list's camera button opens the same camera screen; with the switch at the bottom of the frame on Menu, when you tap "Read the menu", it takes one picture of what the frame on your screen shows, reads the menu's words and numbers on your phone the same way, and looks the dishes it names up in the app's own restaurant list, on your phone. The dishes it finds are shown in the food list for you to pick from, like any search; a dish the list has no match for, or holds at a figure far from the one the menu printed, can be opened as a food of your own — its name, the restaurant's name, and only the calorie figure the menu printed — for you to check before you add it. That picture is never kept either, and neither is what was read from the menu: none of it is saved anywhere in the app, uploaded, or sent to us or to anyone else, and it is gone once you close the food list or move on. Only a dish you then pick, or open as a food of your own, goes any further, and it is kept exactly as it would be had you searched for it or typed it yourself.

Because both are Google's software, Google's barcode reader and text reader also report some technical information to Google whenever you use them: your phone's make, model and Android version, which machine-learning hardware it has, this app's name and version, an identifier for your phone, and a random identifier for the installation (Google says this one is not meant to identify you or your phone), and how the reader performed — how long it took, how it was set up, what happened, and any error. Google says it uses this for diagnostics, to see how its software is used, to keep it working and improve it, and to detect misuse, that it sends it encrypted, and that it does not pass it on to anyone else. The list Google publishes does not include the code you scanned, the pictures or anything read from a label or a menu, your account or anything you log, and none of it comes to us. If you never scan, or read a label or a menu, it never happens.

The one picture the app keeps is the profile photo you choose yourself, if you set one. It comes from Android's own picker (your gallery or files — not the camera), it is stored only on your phone, it is never uploaded or synced, and it is included in your backup file so a restore brings it back. Removing it in Profile deletes it. (If you signed in with Google and set no photo, the app keeps only the link to your Google picture, as section 1 says.)

Route tracking and your location

On an outdoor walk, run, hike, ride or ruck logged with the stopwatch, the Android app can measure how far you went with your phone's GPS. Nothing is read until you agree to it on the route screen, which the app shows the first time you press START on such a set with Track route on. Once you agree, Track route is on for every such set — every outdoor set: switch it off under the stopwatch, before you press START, and that exercise records no route until you switch it back on. On a cardio exercise you made yourself, Track route starts off, and records a route only once you switch it on under its stopwatch. The app cannot tell a treadmill or an indoor bike from the road, so switch it off that way for an exercise you do indoors. If you tap Not now on the route screen, Android's location question is answered no, or you turn Track route off in Profile → Preferences, Track route stays off on every set until you turn it back on. The web version of the app, which iPhone testers use, does not have it.

Your location is never sold, shared, or used for advertising, and the app sets no geofence around any place.

Who processes your data, and where

These are the companies that handle data for this app, or that receive requests directly from your device — and, last, the one group of people who can see something you chose to share:

International transfers. Supabase, Vercel, Cloudflare and Resend are US companies, so data they handle may be stored in, or accessible from, the United States. The mechanism for that transfer is the standard contractual clauses in each provider's data processing agreement, and the EU-US Data Privacy Framework where the provider is certified. Those agreements are not yet in place; this paragraph will name the date once they are. Anthropic, also a US company, handles the report text described in its entry above, and that is not yet under such an agreement either; nor is the Gmail inbox, at Google, also a US company, where the email you send us is kept. The encrypted backups described under "How long data is kept" are kept on our founder's own computer.

How we protect your data

Everything the app sends travels encrypted (HTTPS). On our servers each synced record is locked to its own account: the database refuses any request to read or change another account's records, and the app holds no key that gets round that. That lock binds every request the app makes. Whoever administers our Supabase project can reach the database through Supabase's own console, which the lock does not bind; we use it to run and repair the database, not to read your records. Only the two people who run JST Fitness can open our internal support page, each with a second sign-in step, and it does not show the fitness, body or food data you sync. Android's own backup is switched off for this app, so nothing it stores is copied to Google Drive; the backups we keep are encrypted and described under "How long data is kept". If a breach ever reached your data, we would tell you, and the authorities the law names, as the law requires.

The legal bases, if you're in the EU or UK

The GDPR requires a stated legal basis for each thing done with your data. Here they are, purpose by purpose:

What the app does not do

No training of AI models on your data. We do not use your personal data to train large language models or other AI models.

The one decision the app makes about you on its own

If you confirm a date of birth under 18, the app closes your account ("Children and under-18s" below). Under 13, the account and its data are removed within minutes, and that cannot be undone. From 13 to 17 you get at least 30 days' notice first; during that time you can email us, and a person will look at it and can stop the closing. The decision rests only on the date you entered. Nothing else the app works out decides anything about you with legal or similarly significant effect.

Your data and your choices

There is no grace period, and a deleted account cannot be restored. For up to 14 days, copies of your account record — your sign-in email address, name, profile-photo link and sign-in details, and your plan record — and of any support ticket made from something you sent can remain in the encrypted backups described under "How long data is kept", and are then deleted. Nothing you logged or synced is in those backups, except a food you chose to share, which is part of the shared list. If you want to keep your data, use Profile → Backup & Restore → Back Up Data first.

Crash diagnostics that were never linked to any feedback of yours contain no name or email, and nothing in them ties them to your account; while our host keeps its request logs, the request that sent one carries your account's id if you were signed in, and we never use them to connect reports to people. They may be kept for stability analysis until they age out at 30 days.

Your rights

You have the rights below wherever you live: the GDPR gives them to people in the EU/EEA and the UK, and we honour them for everyone. To use any of them, email the address at the bottom of this page. Requests are answered within 30 days, and using them costs you nothing and changes nothing about how the app works for you.

If we refuse a request, we will tell you why, and you can appeal by replying. We answer an appeal within 45 days, and if we turn it down we will tell you how to complain to your state's Attorney General or, in the EU and UK, your data protection authority.

What the app cannot correct for you

These are the exceptions to "everything you enter can be corrected in the app". For any of them, email us, as above.

How long data is kept

California residents (CCPA)

JST Fitness is free to use while it is in beta, and it is run by two people. The rights the CCPA grants to California residents are honoured here:

Requests: the email at the bottom of this page.

Children and under-18s

JST Fitness is for adults: you need to be 18 or older to use it. The app is not directed at children or teenagers and does not knowingly collect information from anyone under 18.

The reason is what the app does. It sets calorie and macro targets and can be pointed at losing weight, and those are not things it can do safely for someone who is still growing.

If we learn that an account belongs to someone under 18, it is closed. What happens to the data depends on their age, because the two situations are governed by different rules:

When someone confirms a date of birth under 18, the app also keeps a copy of that date on the phone it was entered on, so that starting again on that phone does not simply get past the question. That copy is not part of any account and never reaches our servers, and the app deletes it once that date is 18 years ago.

If you believe a child or teenager has an account, email the address at the bottom of this page and we will remove it. The same goes for our website's waiting list: if we learn that an address on it belongs to someone under 18, we delete it.

If you used JST Fitness before launch

JST Fitness was tested by a small group before it launched, and a few things from that time can still be true of a tester's data. If any of these is yours, email us and we will help you correct or remove it:

Contact

Questions about this policy or requests about your data: [email protected]

Changes to this policy

The "Last updated" date at the top is the day this version took effect. When a change matters — something new leaves your phone, someone new receives it, it is kept longer or used for a new purpose, or your rights change — that date moves, the note at the top of this page says in a few lines what changed, and the app shows you the policy and asks you to agree before you carry on. We will not start sending a new kind of data off your phone, or use or share what we hold for a new purpose, until we have told you in the app and, where the law asks, you have agreed; you can always switch sync off or delete your account instead. Data you gave us before a change is never used or shared in a new way unless you have agreed to it. Other edits — describing something new that stays on your phone, a clearer sentence, a typo, a fixed link — do not move the date. Earlier versions are kept on file; email [email protected] for a copy.