App Privacy Policy

Effective date:

This is the privacy policy for the Musklr iOS and watchOS apps. We take privacy seriously and only collect what we need to make the app work and to improve it. We do not sell your data. We do not show ads.

Who runs Musklr

Musklr is operated by Jan Sviland (Norway). For privacy questions, email support@musklr.com.

What we collect

Account data

Sign-in is handled by Sign in with Apple. We receive your Apple-issued user identifier and the email address you choose to share (which may be a private relay address). We do not run our own email/password flow and never see your Apple ID password.

Workout and profile content

Sets, reps, weights, exercise selections, programs, training-session notes, and timestamps you log. Comments, likes, follows, and direct messages you exchange on the social side of the app. This data is stored on our servers — Supabase, hosted in the EU North region (Stockholm, Sweden) — so it can sync across your devices.

Photos and other content you upload

You choose what to share. The app lets you upload:

Uploads are stored in Supabase Storage (same EU North region). We do not run automated content analysis on your photos and we do not use them to train machine-learning models. You can delete any upload from inside the app; deletions remove the file from our servers within 30 days.

Before upload, every photo is resized and re-encoded on your device. As a side-effect of this pipeline, embedded metadata (EXIF — GPS coordinates, camera model, capture time) is removed; it is never written to our servers.

Subscription data

If you subscribe to Musklr Pro, we store the product you purchased, your subscription status, the expiration date, and the opaque Apple transaction identifier needed to verify your purchase. Payment itself is handled by Apple — we never see your card details, billing address, or App Store account.

Safety records — blocks, reports, and moderation actions

To keep Musklr a useful place for everyone, we store records of the safety actions you and we take.

Blocks. When you block another user, we store a row containing your user identifier, the blocked user's identifier, and the timestamp. This row is visible only to you (enforced by row-level security in our database) and powers the block — it is what tells the app to hide your content from that person and theirs from you. The blocked user is never told they have been blocked and never sees this row.

Reports. When you report content or a user, we store a row containing your user identifier (as the reporter), the user identifier of the person whose content you reported, a reference to the reported item, the category you chose, any optional free-text details you provided, the resulting status (open, under review, actioned, dismissed), and the timestamp. This row is visible only to you and to our moderation team.

Moderation actions. When our moderation team acts on a report (dismisses it, hides content, removes content, suspends or unsuspends an account), we store a row containing the moderator's identifier, the action, the affected user or content, the originating report (if any), an optional note explaining the decision, and the timestamp. This log is private to our moderation team and is what we audit to keep ourselves accountable.

Account suspension state. Each profile carries a current account status (active or suspended). A change to this status is recorded as a moderation action (above) so the history of suspensions and reversals is preserved.

Health data

Musklr integrates with Apple HealthKit on the iPhone and Apple Watch:

We never upload your Apple Health database to our servers — the only thing that leaves your device is the workout you've already chosen to log inside Musklr.

Crash and diagnostic data

Production builds of the app use Sentry to capture crash reports and a 20% sample of performance traces. We use these only to find and fix bugs.

What Sentry receives from your device:

What Sentry receives in addition (so we can debug an individual report):

What Sentry does not receive:

In addition, the iOS and watchOS apps send standard Apple crash logs through your device's built-in reporting, but only if you have opted in via iOS Settings → Privacy & Security → Analytics & Improvements → Share With App Developers.

Third-party processors

We use the following providers to run Musklr. Each processes data on our behalf under a data-processing agreement.

What we do not do

Retention of safety records

Safety records are retained on a different schedule than ordinary account data because their purpose is to protect users from harm and to keep our moderation accountable.

Blocks. Kept for as long as the block is active. When you unblock someone, or when either account is deleted, the row is deleted within 30 days. Blocks never appear in backups beyond 90 days after deletion.

Reports. Kept indefinitely, even after the reporter or the reported user deletes their account. We retain reports because they form a safety history for the reported content and user — patterns across multiple reporters and over time are what let us recognise serial harassment. When the reporter deletes their account, the reporter identifier on the report is anonymised to a placeholder ("Deleted user"), matching the rest of our anonymisation policy under "How long we keep data". The report itself, including the category and any text details, is preserved.

Moderation actions. Kept indefinitely. This is the audit log of every moderation decision we have ever made and is the record we review when we appeal or revisit a decision.

Account status. A profile's current status (active or suspended) is kept for as long as the account exists. If the account is deleted, the final status is preserved on the originating moderation action (if any) but not on the profile itself, which is removed under the ordinary account-deletion process.

If you would like a safety record about you removed and you are not the subject of an active investigation, you can ask in writing at support@musklr.com. We will respond within 30 days. Note that we may decline removal in cases where the record is needed to protect another user.

How long we keep data

Workout and account data are kept for as long as you have an account.

When you delete your account

Open the app and go to Profile → Settings → Account → Delete Account. After you type DELETE to confirm and authenticate with Face ID (or your device passcode), the deletion runs immediately and cannot be undone. Within 30 days, our servers permanently remove:

We anonymize but do not delete your contributions to other users' content:

These items are reattributed to a placeholder identity called "Deleted user." Your username, avatar, and Apple-issued identifier are removed from them entirely. We do this so deleting your account doesn't vandalize other users' threads — it's the same approach Reddit and Strava use, and it's permitted under GDPR Article 17 when balanced against other users' rights.

As part of the same flow we ask Apple to revoke the Sign in with Apple credential. If you instead revoke Musklr from iOS Settings → Apple ID → Sign in with Apple → Stop using Apple ID, Apple notifies our backend and the same deletion runs automatically — you don't need to open the app.

Database backups age out within 90 days of the deletion.

Deleting your account does not cancel an active Musklr Pro subscription. Subscriptions are billed by Apple and must be cancelled in the App Store: Settings → [your name] → Subscriptions. We show this notice in the deletion flow whenever you have an active subscription.

Your rights

Wherever you live, you can ask us to:

If you live in the EU/EEA, the UK, or California, you have additional rights under GDPR and CCPA. The contact email above is the right starting point — we'll respond within 30 days.

Note that we may decline a request to delete a specific safety record (a report you filed, a block another user placed on you, or a moderation action) when keeping the record is necessary to protect another user or to maintain the integrity of our moderation audit trail. We will explain the reason in our response. See Retention of safety records above.

Children

Musklr is rated 12+ on the App Store and is not directed at children under 13. We do not knowingly collect data from children under 13. If you believe a child has created an account, email support@musklr.com and we will delete it.

Changes

We will update this page when our practices change. Material changes will be announced in-app and via email to registered users at least 14 days before they take effect.

Contact

Questions about this policy? Email support@musklr.com.