Marcus Privacy Policy
Effective date: July 5, 2026
Controller: Fabian S. Klinke / studio.klinke, Jülicher Str. 11, D-13357 Berlin, Germany
Contact: info@klinke.studio
This policy covers Marcus for iPhone. Marcus is a Screen Time-powered focus app with optional account sync, optional social leaderboard features, and optional repeatable in-app support payments.
Short Version
- Marcus needs sensitive iPhone permissions to work: Screen Time, notifications, and, if you enable related features, Health, Location, and Contacts.
- Your rules, Screen Time selections, streaks, and app state are stored locally and sync through Supabase when sync is available.
- HealthKit sleep and workout samples are used on-device for smarter rules. Marcus currently requests read access only and does not upload raw HealthKit samples.
- Contacts are used locally for address shortcuts. For friend discovery, Marcus uploads SHA-256 hashes of normalized emails and phone numbers, not raw contact values.
- Social sharing is opt-in and requires a full account. Friends can see only the profile and aggregate leaderboard fields described below, not your detailed app, category, or web-domain usage.
- StoreKit support payments are processed by Apple. Marcus does not receive payment-card details.
- Marcus uses Sentry for crash, error, performance, and diagnostic reporting.
- Marcus does not sell personal data, does not use third-party advertising trackers, and does not use your data for targeted advertising.
- You can contact us to access, correct, export, delete, restrict, or object to processing of your personal data where those rights apply.
Data Marcus Handles
| Area | Data | Where it is stored | Why |
|---|---|---|---|
| Account and sync identity | Supabase user ID, anonymous-account state, full-account state, email address for email accounts, Sign in with Apple identity token during sign-in, local auth cache, installation ID, device platform/model/name, and last-seen sync metadata | Supabase Auth and owner-scoped device rows; local app group cache | Create or convert accounts, keep sync working, authenticate social features, and identify the current install for sync |
| Rules and blocking | Rule names, schedules, enabled state, rule type, usage limits, adult-content-filter toggle, streak state, deleted-rule tombstones, selected apps/categories/websites, and encoded Screen Time selection data | Local SwiftData/app group storage; Supabase block_rules and related owner-scoped tables | Apply Screen Time rules, sync rules across installs, restore app state |
| App state | Always Allowed selections, Block Now state, daily break state, and related encoded app-state snapshots | Local SwiftData/app group storage; Supabase app_state_snapshots | Restore and sync global blocking state |
| Location rules | Current location while the app checks rules, saved rule latitude/longitude/radius, monitored-region state | Local device storage; Supabase rule rows when sync is active | Activate rules at selected places |
| Screen Time stats | Aggregate usage totals, targeted totals, daily usage points, top-app display names, bundle identifiers, and Screen Time token data used for local stats | Local stats cache | Show usage and streak information in the app |
| Leaderboard | Display name, optional profile photo path, daily aggregate iOS Screen Time total, rolling 7-day aggregate total, weekly coverage, longest focus streak, and whether today is broken | Supabase profiles, private profile-images storage, friendships, and leaderboard_snapshots | Optional profile and friend leaderboard sharing |
| Contacts | Postal-address contacts for location shortcuts; your optional discovery phone number; normalized email/phone identifiers for friend discovery | Postal-address contact data and your optional discovery phone number are used locally; friend-discovery hashes are stored in Supabase profile_contact_hashes | Suggest saved addresses and find friends who also use Marcus |
| HealthKit | Sleep analysis and workout samples, derived sleep/workout rule state, local query anchors | Local device/app group cache | Run sleep-aware and workout-aware rules |
| Notifications | Local notification authorization state and notification preference toggles | Local device/app group storage | Send rule boundary and usage notifications |
| Donations | StoreKit product ID, purchase state, verified transaction result needed to finish the transaction | Apple App Store / StoreKit; transient app state | Process optional repeatable support payments |
| Diagnostics | Crashes, errors, app checkpoints, logs, performance traces/profiles, OS/device data, IP/network metadata collected by the diagnostic provider, memory-pressure context, subsystem/operation/file/line metadata, and diagnostic context attached to unexpected software failures | Sentry | Find and fix reliability problems |
| Support | Messages and attachments you send to support | The support channel you use | Respond to requests and debug issues you report |
Screen Time selections and usage summaries can reveal sensitive habits. Marcus treats rule targets, usage totals, location rules, contact hashes, and HealthKit-derived rule state as sensitive data even when a value is not directly readable by another person.
Data Marcus Does Not Collect
Marcus does not intentionally collect or upload:
- payment-card numbers, bank details, or App Store account billing credentials;
- raw HealthKit sleep or workout samples to Supabase;
- raw address-book email addresses or phone numbers for friend discovery;
- detailed app/category/web-domain usage to friends;
- advertising identifiers for third-party ad targeting;
- data for sale, cross-context behavioral advertising, or third-party ad networks.
The app does not use HealthKit data for advertising, does not sell HealthKit data, and does not share HealthKit data with third parties except as needed for the user-facing Marcus feature you enabled.
Permissions
Screen Time
Marcus uses Apple’s Screen Time, Family Controls, Device Activity, and Managed Settings APIs to select apps, categories, and websites, apply shields, calculate usage, and show stats. Marcus stores the selections and rule configuration needed to apply the rules you create.
Health
If you grant Health access, Marcus reads sleep analysis and workout data so sleep-aware and workout-aware rules can work. HealthKit data is used locally. Marcus currently requests read access only and does not write Health data.
Marcus does not use HealthKit data for advertising, marketing, profiling, or other use-based data mining. Health permissions can be changed in the Apple Health app or iOS Settings.
Location
If you enable location-based rules, Marcus uses your current location and saved rule coordinates/radii to decide whether a rule should apply. Marcus does not build a route history. Location-based rule coordinates may sync with your account because they are part of the rule.
Contacts
Marcus uses Contacts in two ways:
- address shortcuts read names and postal addresses locally so you can choose rule locations faster;
- friend discovery reads contact emails and phone numbers locally, normalizes them, hashes them with SHA-256, and sends only those hashes to Supabase for matching.
Hashing reduces exposure but does not make contact data anonymous in every legal sense. Treat friend-discovery hashes as personal data.
Notifications
Marcus uses notifications for rule boundaries and usage reminders. Notification settings are stored locally.
Optional Social Sharing
Social features require a full account. When you enable leaderboard sharing, Marcus publishes a profile and aggregate leaderboard snapshot to Supabase.
Accepted Marcus friends may see:
- your chosen display name;
- your profile photo, if you add one;
- your daily aggregate iOS Screen Time total;
- your rolling 7-day aggregate iOS Screen Time total;
- whether your current weekly data coverage is complete;
- your longest focus streak;
- whether a streak broke today;
- whether today is broken.
Friends do not receive your detailed app list, category list, website list, raw Screen Time report, raw HealthKit data, location rules, or contact list.
Third-Party Services
| Service | Role | Data involved |
|---|---|---|
| Apple App Store, StoreKit, App Store Connect | App distribution, in-app purchases, refunds, TestFlight, device platform services | App Store account/payment data handled by Apple; StoreKit transaction state visible to Marcus only as needed to complete the purchase |
| Apple Screen Time / Family Controls / Device Activity / Managed Settings | Core blocking and stats APIs | Screen Time authorization, selections, shielding state, and usage data on device |
| Apple HealthKit | Optional sleep/workout rule input | Sleep analysis and workout samples on device |
| Apple Contacts, Core Location, UserNotifications | Optional address shortcuts, location rules, and local notifications | Contacts, location, and notification authorization/data as described above |
| Apple iCloud / CloudKit | Legacy migration path for existing Marcus data | Existing local/iCloud Marcus data may be imported and then uploaded through Supabase sync |
| Supabase | Auth, database, storage, sync, social profiles, friend matching, leaderboard | Account, sync, profile, hashed contact, friendship, leaderboard, and profile-image data |
| Sentry | Crash, error, performance, profiling, and diagnostic reporting | Diagnostic data and metadata described above |
Marcus also includes open-source software dependencies, including Supabase Swift, Sentry Cocoa, Swift Crypto, and Swift Certificates. Those libraries help the app run; they are not used as advertising trackers.
Third-party providers must protect user data consistently with this policy and applicable law. Marcus does not authorize providers to use Marcus user data for their own advertising or data-broker purposes.
Legal Bases
If GDPR, UK GDPR, or similar laws apply, Marcus relies on these legal bases:
- contract: to provide app functionality, account sync, StoreKit support payments, and requested support;
- consent, including explicit consent where required: for optional permissions such as Health, Location, Contacts, notifications, social sharing, and Apple account authorization where consent is required;
- legitimate interests: to maintain security, debug crashes, prevent abuse, and improve reliability;
- legal obligations: to comply with tax, accounting, consumer, app-store, and legal requirements.
You can withdraw device permissions in iOS Settings. Withdrawing a permission may disable the feature that depends on it.
Retention
Marcus keeps local data until you delete it in the app, remove the app, reset the relevant device permission/storage, or your device removes it.
Supabase account, sync, profile, friend, hashed-contact, profile-image, and leaderboard data is kept while your account or the relevant feature remains active. You can request deletion. Some data may remain for a limited period in backups, security logs, diagnostics, or records we must keep for legal reasons.
Sentry diagnostic data is kept for a limited diagnostic period according to the project and provider settings, then deleted or aggregated. Diagnostic events may not always be tied to a Marcus account, so some deletion requests can be fulfilled only when the relevant event can be reasonably identified.
Apple controls App Store purchase records and refund history under Apple’s own terms and privacy policy.
Your Choices And Rights
Depending on where you live, you may have rights to access, correct, delete, export, restrict, or object to processing of your personal data. You may also have rights to withdraw consent or appeal a privacy-rights decision.
To make a request, contact info@klinke.studio. We may need to verify that the request relates to your account or device.
You can also control many categories directly:
- revoke Screen Time, Health, Location, Contacts, or notification permissions in iOS Settings;
- turn off leaderboard sharing in Marcus;
- remove profile details or profile photos in Marcus;
- delete rules or change their targets;
- permanently delete your account and associated Supabase data from Account settings;
California and other U.S. state privacy laws: Marcus does not sell personal information and does not share personal information for cross-context behavioral advertising.
Washington and similar consumer-health laws: Marcus does not sell consumer health data. Health-related data is processed only to provide the Marcus features you enable, and raw HealthKit samples are not uploaded to Supabase. See the Consumer Health Data section below for more detail.
If GDPR, UK GDPR, or similar laws apply, you may also complain to a supervisory authority. For the Berlin controller, the local authority is the Berliner Beauftragte für Datenschutz und Informationsfreiheit, datenschutz-berlin.de. You may also contact the authority in the place where you live, work, or believe an infringement happened.
Consumer Health Data
Marcus may handle health-related data when you enable HealthKit sleep/workout rules or when focus/streak information could imply something about your routines or wellbeing.
Categories:
- sleep analysis and workout samples read from HealthKit;
- derived sleep/workout rule state and local query anchors;
- focus rules, Screen Time totals, streaks, and broken-today status where they may imply habits or wellbeing.
Sources:
- you and your device;
- Apple HealthKit, only after you grant permission.
Purposes:
- run sleep-aware and workout-aware rules;
- show rule, stats, and streak state;
- support optional aggregate leaderboard sharing only for the fields listed in this policy.
Sharing:
- raw HealthKit samples are not uploaded to Supabase;
- aggregate leaderboard fields may be shared with accepted Marcus friends if you enable leaderboard sharing;
- unexpected software failures may be reported to Sentry with diagnostic metadata, but Marcus does not intentionally attach raw HealthKit samples to those reports;
- no consumer health data is sold or shared for advertising.
You may withdraw Health permission in Apple Health or iOS Settings. You may request access or deletion by contacting info@klinke.studio. Some local data is controlled by your device and can be removed by changing permissions, deleting local app data, or deleting Marcus.
Children
Marcus is not directed to children under 13. If you are under the age required to use Marcus in your location, use Marcus only with a parent or guardian’s permission. If you believe a child provided personal data without appropriate permission, contact info@klinke.studio.
International Transfers
Marcus uses providers that may process data in more than one country. Where required, Marcus relies on provider data-processing terms, Standard Contractual Clauses, adequacy decisions, or similar safeguards for international transfers.
Security
Marcus uses platform security features such as iOS app sandboxing, local file protection, Supabase Row Level Security for exposed tables, private Supabase storage for profile images, owner/friend access policies for social data, and short-lived signed URLs for profile images.
No app or network service can guarantee perfect security. Please protect your Apple ID, device passcode, and Marcus account credentials.
Changes
We may update this policy when Marcus changes or legal requirements change. If a change materially affects your rights or how Marcus handles sensitive data, we will provide a reasonable notice path, such as an in-app notice or release note.