Privacy Policy
Support and privacy: support@mizumetric.com
This policy describes how MizuMetric handles information in its current hydration-tracking app. MizuMetric lets you record water intake, manage goals and local reminders, and participate in private groups.
1. Information stored on your device
You can use guest hydration tracking without creating an account. On iOS, MizuMetric stores hydration information in a local SQLite database, including:
- Water amounts, record identifiers, consumption timestamps, original local dates, timezones and UTC offsets, and optional bottle names.
- Saved bottle names, sizes and ordering, and dated hydration-goal snapshots.
- Display-name and tracking preferences, such as measurement units, quick-add sizes, daily goal, and onboarding state.
- Reminder settings, including selected times, intervals, waking hours and quiet hours.
- Separate guest and account histories, and information needed to preserve and retry guest-history imports, including source snapshots, batches and receipts.
- If private leaderboard sharing is enabled and you opt in, account-scoped consent and synchronization state needed to prepare and safely retry a daily aggregate.
Completion percentages and streaks are calculated from recorded hydration and goals. Timezone information is used to interpret dates; the current app does not request GPS location for hydration tracking.
2. Accounts and authentication
If you create an account, MizuMetric sends your email address, chosen password and display name to Supabase for account creation and authentication. Supabase assigns an account identifier. The application does not save your password in its hydration database.
Supabase processes account confirmation, sign-in and fresh reauthentication requests. Authentication emails are delivered through Resend using Supabase's configured email delivery service. These emails contain the information necessary to complete the requested action, including authentication links.
On iOS, session credentials are stored using Keychain-backed secure storage so the app can restore your session. Browser previews use separate browser storage. The app also stores email-send cooldown information locally.
3. Optional cloud imports — not continuous synchronization
If you explicitly choose to import guest history, MizuMetric uploads a snapshot of your water entries, saved bottles and dated goals to Supabase, associated with your account. Imported entries include their amounts, timestamps, local dates, timezone information and optional bottle names. Supabase also stores import identifiers, verification hashes, counts and timestamps needed to recognize retries and conflicts.
Your cloud profile contains your account identifier, display name and timezone. Profile changes and private-group actions also use Supabase. The app can load previously imported account history when initializing an account.
Continuous hydration synchronization is not currently available. New logs and later local edits or deletions do not automatically update or delete an earlier cloud snapshot. Do not assume that all records are backed up or that another device has the same history. Guest-history import does not upload reminder schedules or all local preferences.
4. Private groups, invitations and leaderboard sharing
Private groups are invitation-only and have a maximum of 10 members. They store a group name and identifier, ownership, members' account identifiers, joining timestamps, and invitation information. Group members can see the group name, member display names and owner designation. Authorized group responses also contain membership identifiers and joining information.
Owners can manage group names, membership, ownership and invitations. They can access invitation lifecycle information, including relevant creator and redeemer identifiers. Invitation codes are single-use, expire after seven days, and are stored in the database as hashes rather than plaintext codes. The plaintext code is returned when generated so the owner can share it.
Group membership alone does not give other members access to your email address, authentication credentials, individual water entries, bottle details, full hydration history, streaks or reminder settings. The exact amount of your daily goal is used to calculate leaderboard progress but is not displayed as a separate group value.
Leaderboard sharing is not active in the current app release. If it is enabled in a future release, no leaderboard aggregate will be uploaded for you unless you explicitly opt in in Profile to the current privacy notice. When enabled and opted in, MizuMetric uploads a minimal current-day aggregate to Supabase: total consumed in milliliters, personal goal in milliliters, your local calendar date and timezone, plus synchronization metadata such as the operation/revision and device-binding information needed to authorize and safely order updates. Individual entries, entry timestamps, bottle names and full hydration history are not included.
When sharing is active, members of the same private group can see your current daily total water consumed and your whole-number percentage of your personal daily goal. The percentage used for ranking is capped at 100%. The full total, including water consumed above your goal, is displayed for information only; total water does not affect ranks or break ties. Members who are not currently sharing appear as “Not sharing”. Members whose current-day update is missing or stale appear as “Awaiting update” and are unranked, with no total or percentage shown. Each member's day follows that member's timezone, so group members may be viewing different local calendar dates.
You can withdraw leaderboard sharing in Profile. Withdrawal stops new uploads on the device immediately. Previously uploaded aggregate data is removed when the withdrawal reaches the server; if you are offline, the withdrawal may remain pending on the device, and other members may continue to see the last uploaded total until removal is confirmed. One device at a time can synchronize leaderboard data for an account. Recovery or transfer controls may be required to resume syncing on a different installation. Information another member has already viewed or copied cannot be recalled from that member's device.
If you copy or share an invitation, the clipboard, chosen messaging service and recipients may retain it outside MizuMetric. Group security records also associate invitation-redemption attempts with accounts to limit abuse.
5. Reminders and notifications
With your iOS notification permission, MizuMetric schedules local hydration reminders on your device. The current reminder feature does not register a remote push-notification token or upload reminder schedules to Supabase. Notification content may appear on your lock screen according to your iOS settings.
You can change or disable reminders in the app and manage notification permission in iOS Settings. Reminder preferences are not automatically removed by account deletion.
6. Why information is used
The app uses information to authenticate and secure accounts; display hydration records and calculate progress; perform requested imports; operate private groups and invitations; schedule local reminders; and, if you opt in when available, synchronize a minimal daily aggregate and calculate private-group leaderboard percentages and ranks. It also uses information to prevent unauthorized access, conflicting imports and invitation abuse.
7. Service providers and technical information
- Supabase: authentication, account profiles, explicitly imported hydration snapshots, private groups, import receipts, security records and—only after explicit opt-in when leaderboard sharing is enabled—a replaceable daily hydration aggregate, consent state and synchronization/device metadata. MizuMetric's primary Supabase project uses the Free Plan and is hosted in US East 1 (Northern Virginia), United States. This does not mean that all provider processing occurs there.
- Resend: authentication and verification-email delivery through Supabase, using the verified mizumetric.com sending domain and the North Virginia (us-east-1) sending region. Resend processes recipient addresses, message contents and delivery-related technical records, as applicable. Hydration history is not intentionally included in those emails. The sending region does not establish where all related processing takes place.
- Cloudflare: domain registration and DNS infrastructure, support-email forwarding through Cloudflare Email Routing, and hosting of this privacy policy on Cloudflare Pages. Messages sent to support@mizumetric.com are forwarded to a Gmail inbox, where they may be retained.
- Google Gmail: the destination mailbox for forwarded support messages, including sender addresses, message contents and attachments you choose to send.
- Apple: iOS services such as Keychain and local notifications. For a TestFlight beta, Apple separately operates distribution, feedback and diagnostic services under its own terms.
- Expo and Replit: development previews and managed build/distribution infrastructure. Development-preview behavior is separate from a standalone installed app.
Service requests expose technical information, such as network addresses, to the services receiving them. Although the primary Supabase project is hosted in the United States, provider infrastructure, any provider-managed backups, security logs and operational processing may involve other locations. Providers' handling of operational logs, email delivery records and any backups is separate from the app's local storage and account-deletion controls. Neither a project region nor an email sending region is a guarantee of exclusive processing in that location.
No custom email click/open tracking subdomain is configured for the reviewed Resend setup. This does not establish that all email tracking or provider logging is disabled. No website analytics or tracking have been intentionally enabled for the policy website; this is not a claim that Cloudflare does not maintain operational records.
MizuMetric does not include advertising, cross-app advertising tracking, analytics-event collection or a remote crash-reporting integration. It does not integrate with HealthKit. This statement does not describe every service provider's independent operational logging or Apple's separate TestFlight processing.
8. Account deletion and local choices
You can edit or delete local water entries. Those changes do not automatically modify a previous cloud import. Signing out retains the account's local history separately and is not account deletion.
To delete an account, open the account controls in Profile, request a fresh deletion reauthentication email, open its link on the same iPhone, and type DELETE to confirm permanent deletion. Opening the email link alone does not delete anything. If you own a group, transfer ownership or delete that group first; a blocked deletion leaves the account and hydration data unchanged.
After successful server deletion, the account's profile, imported hydration records, bottles, goals, import receipts, memberships, invitation-attempt record and leaderboard aggregate, consent, device-binding and consent-receipt records are removed from the application's active database. Invitation records belonging to groups that remain may be retained with deleted creator or redeemer references cleared.
The app then removes account-linked local histories, import journals and the account-scoped leaderboard synchronization outbox on the requesting device, and clears its session. Unrelated guest history and reminder preferences remain. If local cleanup fails after cloud deletion, the app reports this and offers a retry.
Account deletion does not guarantee immediate removal of offline copies on other devices, provider backups or logs, delivered emails, or copies shared outside the app. Local database deletion is not a promise of forensic secure erasure. The current app has no general data-export tool or individual cloud-record deletion interface.
9. Retention
The application does not automatically expire hydration history. Local records, account caches and import-recovery information remain until removed through supported actions or device storage management. Expired or used invitation records are not automatically purged merely because the code is no longer valid.
If leaderboard sharing is enabled, Supabase stores one replaceable daily aggregate per account rather than a row for every historical date. A later accepted update replaces the previous aggregate. If no update arrives after a local day changes, the last submitted date may remain stored; the group interface labels that member “Awaiting update” and does not display the stale total or score. Withdrawal removes the aggregate when the request reaches the server, and successful account deletion removes the account-linked leaderboard records described above.
Imported cloud hydration records remain associated with your account unless the account is deleted through the supported flow. The app does not implement a scheduled purge of unconfirmed accounts. MizuMetric uses Supabase's Free Plan; this policy does not promise paid-plan backup features, automatic backup availability or any specific backup-retention period.
Delivered emails, provider-managed backups where available, operational records and security logs may have retention practices separate from the application's active database. Deleting an account does not itself establish when those copies are removed. No specific provider retention period or deletion deadline for those copies is promised here.
If you contact support, your message includes the email address and information you choose to provide. Cloudflare Email Routing forwards it to a Gmail inbox; support correspondence may remain in that mailbox separately from your app account. Deleting an app account does not automatically delete support emails. Contact support@mizumetric.com with questions about retention or to request review of information associated with you.
10. Security
The app uses authenticated cloud requests, database access controls and iOS Keychain-backed session storage. Hydration storage uses local SQLite; this policy does not claim application-level encryption of that database. No storage or transmission method is guaranteed to be completely secure.
11. Age audience
MizuMetric is intended for users aged 13 and older and is not directed to children under 13. The current app does not verify users' ages. If you believe information about a child under 13 has been provided, contact support@mizumetric.com so the developer can review the concern and determine appropriate action.
Additional protections, consent requirements or age restrictions may apply to teenagers depending on where they live. The intended audience statement does not replace those requirements.
12. Privacy requests and policy changes
For support, privacy questions, or requests concerning your information, email support@mizumetric.com. Available rights and applicable procedures depend on your jurisdiction. Requests are not handled through an automated in-app export or privacy-request tool.
We may update this policy when MizuMetric's practices change. The effective date identifies the current version.