Privacy Policy – Simple Workout
This policy explains what the iPhone app Simple Workout ("the app") stores, what leaves your iPhone, who receives it, how long it is kept and what you can do about it. "I" means the developer of the app.
1. At a glance
- Without an account, your workouts stay on your iPhone and I receive nothing.
- An account is optional. It stores your username, your email address and your training data on a server in Ireland, so you can back up and sync.
- Smart muscle matching is optional and off by default. When you turn it on, only an exercise name is sent through my server to Anthropic, an AI company in the United States.
- Apple Health access is optional and read-only. Health data stays on your iPhone. It is never uploaded.
- There are no ads, no analytics, no tracking and no data selling.
- You can export your data and delete your account in the app at any time.
- Questions or requests: simpleworkout@simple-apps.dev. I answer within 30 days.
2. Who is responsible
Controller: Lune Studio, Switzerland. Contact: simpleworkout@simple-apps.dev
Lune Studio is the name under which I, a private individual in Switzerland, publish the app. It is not a company. I have no data protection officer.
3. Using the app without an account
If you choose "Use Without an Account", everything you enter stays on your iPhone: training days, exercises, weights, reps, sets, machine notes, finished sessions, weight history, ranks and settings. The app does not contact my server.
4. What I process, why, and on what legal basis
The legal bases below refer to the EU General Data Protection Regulation (GDPR). Under the Swiss Federal Act on Data Protection (FADP), I process your data on the same grounds and follow its processing principles.
| Feature | Data | Why | Legal basis |
|---|---|---|---|
| Account | Username, email address, password (stored only as a salted hash), internal account ID, whether your email is confirmed | Sign-in, confirming that the email is yours, password reset | Contract (GDPR Art. 6(1)(b)) |
| Sync and backup | Training days (name, colour, order), exercises (name, weight, reps, sets, machine, favourite mark), finished sessions (date, day name, number of exercises), weight history per exercise (date, weight, reps, sets) | Keeping your data on the server and on your devices | Contract |
| Sign-in sessions | For each signed-in device: IP address, device type (user agent), time of sign-in and refresh | Keeping you signed in, ending sessions | Contract |
| Email codes | 6-digit code sent to your email, a hash of it, the address it went to, time, number of tries | Confirming your email, password reset | Contract |
| Sharing a day | Your username, the shared day and its exercises, the recipient's account, time | Delivering the copy to the person you chose | Contract |
| Blocking and limits on sharing | Who blocked whom, time and result of each send attempt | Preventing spam and abuse | Legitimate interest in a safe service (Art. 6(1)(f)) |
| Smart muscle matching | The exercise name; on my server also your account ID, time and result of the request | Placing the exercise on the body map; daily limit per account | Consent (Art. 6(1)(a)) for sending the name; legitimate interest for the limit |
| Security limits | Keyed hashes of IP addresses, usernames, email addresses and account IDs, with time | Stopping mass sign-ups and code guessing | Legitimate interest in a secure service |
| Support email | Your email address, your message, and anything you add, such as app version, iOS version, iPhone model and app language from "Share app info" | Answering you | Legitimate interest in answering requests, or contract |
| Website | IP address and request data, processed by Cloudflare | Delivering the pages | Legitimate interest in running the website |
Fitness records such as weights and training dates can reveal something about your health. I treat all training data with the same care as health data. Please do not write medical details into exercise names or other fields.
5. Smart muscle matching (AI)
This feature is off by default. It needs an account. When you switch it on in Settings, the app first asks for your permission and tells you what is sent.
If the app's own keyword list does not recognise an exercise name, the app sends that name to my server. If my server already knows the answer, nothing goes to Anthropic. Otherwise my server sends only the name to Anthropic's Claude API and returns one muscle group to your iPhone.
What is not sent to Anthropic: your username, your email address, your account ID, your IP address, your weights, your history or any other exercise. Anthropic sees my server's address, not yours.
My server keeps each name and its muscle group in a shared list with no link to you or any account, so a name is asked only once. Separately, it logs your account ID, the time and the result of each AI request to limit each account to 60 requests per day.
Switch off "Smart muscle matching" in Settings at any time, and no more names are sent. You can always pick the muscle yourself.
6. Apple Health
This feature is optional. If you turn on "Show Fitness Workouts", iOS asks for permission to read from Apple Health:
- workouts of the types "traditional strength training" and "functional strength training" from about the last 13 months, with start and end time and the name of the recording app;
- active energy (calories) for those workouts;
- heart rate for those workouts (average and maximum).
The app only reads; it never writes to Apple Health. The data is shown next to your own workouts on your iPhone and is not saved in the app's database. It is not uploaded to my server, not synced to your account, not stored in iCloud by the app, not shared with anyone and never used for advertising, marketing or data mining. Turn the feature off in the app, or remove access in iOS Settings under Health.
7. Sharing a training day
With an account, you can send a copy of a training day to another user by typing their username. The copy contains the day's name and colour, its exercises with weights, reps, sets, machine, muscle and favourite mark, and your username. Your history is never shared.
The copy waits on my server until the recipient adds it or declines it, until the recipient blocks you, or until one of the two accounts is deleted. Once the recipient adds it, it becomes part of their own data, and you cannot take it back.
The recipient can block a sender. The sender is not told; their waiting copies disappear and later ones are not delivered. Report opens an email to me with the sender's username and the day name, which I use only to deal with abuse.
8. Notifications, app lock and other on-device features
- The rest timer and the optional weekly-goal reminders are local notifications. There is no push server. The gym check-in reminder is a message inside the app.
- The app lock uses Face ID or your passcode through iOS. The app only learns whether unlocking succeeded.
- Widgets, Live Activities, settings and preferences stay on your iPhone.
- Saved logins for switching accounts stay in the iPhone's Keychain, on this device only, and are not included in backups.
9. What I do not do
- No advertising and no ad networks.
- No analytics, crash-reporting or tracking tools, and no tracking across other apps or websites.
- No selling or renting of personal data, and no sharing of it for advertising.
- No profiling and no automated decisions with legal or similar effects on you.
The app contains one external code library: Supabase's open-source client, which connects the app to the account server.
10. Who receives data
| Recipient | Role | Data | Location | Safeguard |
|---|---|---|---|---|
| Supabase | Database, sign-in and server functions; processor for me | All account, sync, sharing, code and limit data in section 4 | Data hosted in Ireland (AWS, eu-west-1); the contracting company is in Singapore and support staff can access it from other countries | Supabase's data processing agreement with the EU standard contractual clauses |
| Resend | Sends the code emails; processor for me | Your email address and the email content, including the code | United States | Resend's data processing agreement with standard contractual clauses |
| Anthropic | AI model for smart muscle matching, only if you turn it on | The exercise name only | United States | Anthropic's data processing terms with standard contractual clauses |
| Cloudflare | Hosts the website and forwards email sent to simpleworkout@simple-apps.dev; Supabase also routes server requests through Cloudflare | IP address and request data; support emails in transit | Global network, company in the United States | Cloudflare's data processing agreement with standard contractual clauses |
| Other users | Recipient of a day you share | The shared copy and your username | Wherever that user is | You choose the recipient |
Support emails are forwarded to my personal mailbox and stored there. Apple distributes the app and runs iOS and Apple Health under its own privacy policy; I send Apple no data. I disclose data to authorities only where Swiss law obliges me to.
11. International transfers
The account data is stored in Ireland. The EU and Switzerland recognise each other's level of data protection. Data reaches the United States through Resend, Anthropic and Cloudflare, and it can be accessed from Singapore and other countries for Supabase support. For these countries I rely on the providers' contractual safeguards (standard contractual clauses, with the adjustments for Swiss law). You can ask me for a copy of these safeguards.
12. How long data is kept
| Data | How long |
|---|---|
| Data on your iPhone | Until you delete it or the app. Deleting your account does not remove it. |
| Account details, synced training data | Until you delete your account. Items you delete in the app stay on the server as deleted entries for 30 days, then they are removed. |
| Sign-in sessions | Until you sign out, the session expires, or you delete your account. |
| Email codes | A code works for 15 minutes and is locked after 5 wrong tries. The hash and the address it was sent to are deleted after one day. |
| Waiting shared days | Until added, declined or blocked, or until either account is deleted. |
| Share attempts | 30 days. |
| Blocks | Until either account is deleted. |
| AI request log | 30 days. |
| AI answer list (names and muscles, no account link) | Without an end date. |
| Security limits (hashed IP, username, email, account ID) | Deleted after one day. |
| Record of a password reset I do on your request | Your username and the time. Deleted when you delete your account, and in any case after 12 months. |
| Support emails | Up to 24 months after your matter is closed. |
| Provider logs and backups | Supabase, Resend and Cloudflare keep operational logs and backups on their own schedules. Resend keeps a log of sent emails, which includes the code in the subject line; the code stops working after 15 minutes. |
13. Deleting your account
In the app, go to Settings, Account & Security, Delete Account. This deletes your account and all data linked to it from the live database at once: account details, training data, sessions, email codes, shared days you sent or received, blocks and the AI request log. The data on your iPhone stays. Provider backups and logs expire as described in section 12.
14. Security
- All connections between the app, my server and the providers are encrypted (HTTPS/TLS).
- Every table on the server is locked so that a signed-in user can read and change only their own rows.
- Passwords are stored only as salted hashes by Supabase Auth. Codes are stored only as hashes.
- Sign-up, code requests and AI requests are rate-limited, and a code is locked after 5 wrong tries.
- The Anthropic and Resend keys stay on the server and are never in the app.
The data is not end-to-end encrypted. As the operator I can technically access the server database, and so can provider staff under their contracts. I access it only to run the service, fix problems or answer your request. If a breach puts your rights at high risk, I inform you and the authorities as the law requires.
15. Your rights
You have the right to access your data, to correct it, to delete it, to receive it in a portable format, to restrict or object to processing (in particular processing based on legitimate interest), and to withdraw consent at any time. Withdrawing consent does not make earlier processing unlawful.
- Export: Settings, Your Data, Export creates a file with your routine, session history and weight history.
- Correct: edit your data in the app. Change your email in Settings, Account & Security.
- Delete: Settings, Account & Security, Delete Account.
- Withdraw consent: switch off smart muscle matching in Settings; remove Apple Health access in iOS Settings.
- Everything else, including a copy of your account details: write to simpleworkout@simple-apps.dev.
I answer within 30 days. To confirm that a request comes from you, I ask you to write from the email address of your account or to confirm a code sent to it. I do not ask for ID documents. If I cannot confirm that you control the account, I cannot act on it, but you can still delete the account in the app while you are signed in.
You can complain to the Swiss Federal Data Protection and Information Commissioner (FDPIC), www.edoeb.admin.ch. If you live in the EU or EEA, you can also complain to the data protection authority in your country.
16. Children
The app is not directed at children. You must be at least 16 years old to create an account or use the account features. If I learn that a child under 16 has an account, I delete it. If you think this has happened, write to me.
17. Notes for users in the United States
I do not sell consumer health data, share it for advertising or use it to build profiles, including under the consumer health data laws of Washington, Nevada and Connecticut. You can use the rights in section 15 wherever you live. For California residents: I do not sell or share personal information as defined by the California Consumer Privacy Act and do not use sensitive personal information to infer characteristics about you.
18. Website and cookies
The website simpleworkout.simple-apps.dev is a set of static pages on Cloudflare. The pages contain no scripts, no analytics, no trackers and no embedded content from other sites, and the site's own code sets no cookies. To deliver the pages, Cloudflare processes your IP address and request data as described in section 10.
19. Health notice
The app, including its ranks and estimates, is for general fitness tracking. It is not medical advice.
20. Changes to this policy
Each version has a number and a date at the top, and the list below shows what changed. If I make a material change, such as a new type of data, a new recipient or a new purpose, I tell you in the app before it takes effect. If an optional feature starts sending different data, I ask for your permission again in the app.
- Version 2.2, 10 November 2026: new contact address and website address (simple-apps.dev). The old addresses keep working. No change to what data is processed, why, or by whom.
- Version 2.1, 6 November 2026: shorter retention periods. Email codes, deleted entries, share attempts, the AI request log and the password reset record are now deleted automatically.
- Version 2.0, 23 October 2026: full rewrite with legal bases, recipients and countries, retention per data type, email codes, sharing, blocking, security limits, website and US notes.
- Earlier versions (October 2026) had no version number.
21. Contact
Write to simpleworkout@simple-apps.dev. The controller is named in section 2.