Liftitude

Privacy policy

This policy describes what Liftitude collects, why, and what you can do about it.

Last updated

Who runs Liftitude

Liftitude is operated by [LEGAL OPERATOR NAME REQUIRED].

A confirmed legal operator name has not yet been supplied for this deployment. Rather than print a guess, this policy shows a placeholder until the real identity is provided.

Signing in with Google

Google is the only sign-in method. When you sign in, Google asks you to approve exactly these scopes:

  • openid
  • email
  • profile

From those scopes we receive your name, email address, profile picture URL and whether Google has verified the address. We use them to create and identify your account and to show you which account you are signed in as. We do not use them for advertising or profiling.

Liftitude never receives your Google password. We request no access to Gmail, Drive, Calendar, Contacts, or any fitness or health service.

Google access, refresh and ID tokens are not kept. They are blanked before the sign-in record is written, so the database holds no credential that could be used to reach your Google account.

What is stored online

Online data lives in a Cloudflare D1 database. It consists of:

  • Account record — name, email address, email verification flag, profile image URL, created and updated timestamps.
  • Sign-in method — that your account is linked to Google, the granted scope, and when it was linked.
  • Sessions — a session identifier, its expiry, the IP address and the browser user agent that created it. These keep you signed in and let you be signed out everywhere.
  • Profile, preferences and daily goals — only the fields you submit through those screens.
  • Security records — short-lived sign-in verification values and rate-limit counters keyed by client IP and request path.

What stays in your browser

The great majority of what you record in Liftitude is stored in IndexedDB in your browser profile and is never sent to us:

  • Workouts, training plans, templates, drafts and performance history.
  • Journal entries, reflections, notes and mood check-ins.
  • Sleep, meditation and other wellness records.
  • Nutrition, hydration and fasting records.
  • Health signals such as weight, steps and heart rate.
  • Planned routes, recorded routes and GPS points.
  • Community Preview profiles, posts, groups, challenges and messages.
  • Reminders, notifications, media metadata and operation history.

Records already in your browser are never uploaded automatically. Because they exist only on that device, clearing your browser storage can remove them permanently. Export them from Settings → Data if you want a copy.

Cookies and sessions

Liftitude sets one cookie: a session cookie issued when you sign in. It is HttpOnly (JavaScript on the page cannot read it), Secure (sent only over HTTPS), and scoped to this site. The server-side session token is deliberately withheld from the session response the browser can read.

There are no advertising cookies, no analytics cookies and no third-party trackers.

Service providers

We do not sell your data and we do not share it with anyone for their own purposes. We do rely on infrastructure providers that necessarily process data on our behalf:

  • Cloudflare — hosts the application (Workers), stores the online database (D1), and terminates TLS. Request metadata such as IP addresses passes through Cloudflare's network.
  • Google — provides sign-in. Google sees that you signed in to Liftitude.

Some optional features make requests from your browser directly to third parties, so those services see your IP address when you use the feature: OpenStreetMap and Nominatim for map tiles and address lookup, and Open Food Facts for food data. These requests are not proxied through us and carry no account identifier.

How long we keep things

  • Your account, profile, preferences and goals are kept until you delete your account.
  • Sessions carry an expiry and stop being valid once it passes. They are removed immediately when you delete your account.
  • Sign-in verification values are short-lived and expire on their own.
  • Rate-limit counters are keyed by client IP and request path, not by account, and roll over on their own time window.

Export and deletion

Export. Settings → Account offers “Download my online Liftitude data”, which returns a JSON file containing your account details, sign-in methods, profile, preferences and daily goals. It deliberately excludes session tokens, cookies, Google tokens, password fields, verification secrets, rate-limit records and the Google subject identifier. It contains only your own data.

Deletion. The same screen deletes your online account. You type DELETE to confirm. Your daily goals, preferences, profile, sessions, sign-in method and account record are removed together in a single database transaction, and you are signed out everywhere. Full deletion instructions.

Deleting your online account does not delete the records stored in your browser. That is a separate action in Settings → Danger zone, and we cannot do it for you.

Security

Traffic is served over HTTPS with TLS provided by Cloudflare. The application sets a content security policy, denies framing, and marks authenticated API responses no-store. Online data is stored in Cloudflare D1 and is subject to Cloudflare's platform-level storage protections. We make no claim of additional application-level encryption at rest, and we hold no security certification.

Contacting us

A published support mailbox is still being set up. See the contact page for the current way to reach us.

Changes to this policy

If this policy changes materially, the revision date at the top of the page changes with it. Liftitude is early-release software and this policy will be revised as the product develops.