Privacy Policy

Your data, explained.

This policy covers the Liftstash iOS and Android app, its share extension and backend, and liftstash.app. Updated October 4, 2026.

Controller and contact

The data controller and operator of Liftstash is Ferdinand Porsche. Contact [email protected] for privacy questions, access, export, correction, deletion, or objections. This contact also handles data-protection requests.

Account and training data

We process your email address, authentication-provider identifiers, and profile information you supply, including an optional display name. Our backend uses PocketBase, self-hosted database and authentication software. Apple or Google process sign-in under their own privacy information when you choose those methods.

We store exercises, source links and metadata, preferences, templates, workout sessions, sets, repetitions, weights, durations, and related notes you create or import. Signed-in data is associated with your account for cloud synchronization. Local storage holds preferences and cached app data; authentication tokens use iOS Keychain or Android secure storage.

Account-linked import request, usage, and allowance records deliver results, prevent duplicate work, enforce limits, and protect the service. We do not request medical records, contacts, precise device location, or access to HealthKit. Please do not put unrelated sensitive personal information into notes or imported content.

Video imports and external AI

When you choose to import a supported clip, its shared URL is sent to the Liftstash backend. The backend accesses the source platform and may temporarily retrieve media, captions, descriptions, and relevant images to extract and translate exercise information. Results can be inaccurate.

OpenAI receives transcripts, captions, relevant source text, and, for image-based posts, relevant images through its API. Groq receives audio when speech-to-text transcription is needed. These providers may process data in the United States. To reconcile imported exercises, OpenAI can also receive relevant saved exercise/workout-template details, including IDs, names, instructions, equipment, muscle information, and source metadata. Matching shared plans can send the shared exercise details and relevant existing exercise-library entries (IDs, names, equipment, and muscles) to OpenAI. We do not add your account email or recorded workout sessions to these matching requests. Content itself can nevertheless contain identifiable people, voices, or other personal information. See OpenAI API data controls and Groq data handling.

Before the first AI import of a clip or shared plan, the app or iOS share extension asks for your permission once per account. We store the time of that permission with your account preferences, and the device keeps a local copy so it does not ask again. You can withdraw this permission under Profile → Preferences → AI imports, after which the app asks again before the next AI import. Cancel or dismissal does not authorize processing. Previewing a shared plan does not call AI. No AI processing happens while you do not import, and deleting your account removes this record. You can create plans manually and use saved workouts without importing another video or shared plan.

Import only content you own or have permission to process, including permission relating to other people where required. Source platforms receive normal network requests and handle information under their own terms. Sharing a link does not grant Liftstash rights to a third party's video.

Support and diagnostics

When you contact us, we process your message, contact address, and information needed to respond. Diagnostic reports are sent only when you choose to submit them after previewing the report. They can include platform, app version, recent app events, technical failures, and written feedback; signed-in reports are associated with your account.

Server access and error logs can include IP addresses, timestamps, request information, account identifiers, and source URLs. These are separate from product analytics and help operate, secure, and troubleshoot the service. Do not send passwords, sign-in codes, authentication tokens, or medical documents through feedback.

Product and website analytics

Self-hosted Umami helps us understand product use and reliability. App events include broad actions such as completing onboarding, starting or completing an import, and starting or completing a workout, plus platform, app version, and limited event properties. These event payloads do not contain your account ID, email, display name, raw shared URLs, transcripts, or workout notes.

Umami receives network and device context such as IP address and browser or operating-system information while handling requests. It can derive approximate geographic information and short-lived session identifiers for aggregate statistics. It does not use advertising cookies or cross-company advertising tracking. Cookieless does not mean that no data is processed.

Disable app events under Profile → Preferences → Share anonymous analytics. Website analytics respect Do Not Track and exclude query parameters and shared-plan tokens, so email preference tokens, invite codes, and private shared links are not included in page-visit analytics.

Liftstash does not sell personal data or use workout information for targeted advertising. Opening a source platform, app store, or external support link is subject to that service's own privacy practices.

Website email updates

If you subscribe, we process your email address, optional iOS or Android preference, optional beta invitation code, subscription events, and delivery information using Plunk’s hosted email service. Beta approval notifications also pass through our self-hosted automation and its Telegram notification channel. See Plunk privacy information.

Subscription is separate from an app account. The signup form explains that you are requesting beta or product emails. Withdraw permission with the unsubscribe link or by emailing us. Unsubscribing does not delete your app account; account deletion does not automatically unsubscribe a separate website subscription.

Purposes and legal bases

For people in the EEA, necessary account, cloud-workout, import, and support processing provides the service you request (Article 6(1)(b) GDPR). Voluntary email subscriptions and separately requested permissions rely on consent where applicable (Article 6(1)(a)); withdrawal affects future processing, not the lawfulness of earlier processing.

Necessary security, abuse prevention, operational diagnostics, and limited product statistics serve our legitimate interests in a secure, reliable service (Article 6(1)(f)), balanced against your rights. You can object, including through the analytics controls above. Where a legal obligation requires records, Article 6(1)(c) applies.

We do not make decisions with legal or similarly significant effects about you solely by automated processing. AI suggests exercise information for you to check; it does not determine eligibility, insurance, employment, or medical treatment.

Recipients and international processing

Access is limited to the operator and providers needed for hosting, authentication, AI, email, notifications, and secure backups. The app database and analytics are self-hosted. Automatic database backups use private Amazon Web Services S3 storage in Frankfurt (eu-central-1). OpenAI, Groq, Plunk, and Telegram may involve processing outside the EEA.

International processing is subject to applicable data-processing terms and transfer safeguards, such as an applicable adequacy decision or standard contractual clauses. Request information about the arrangements relevant to your data and copies of applicable safeguards from the privacy contact.

Retention and deletion

Account and cloud training data remain while you keep your account or until you delete relevant records. Import and usage records support delivery, allowance accounting, and abuse prevention. Initiate account deletion through Profile → Danger Zone → Delete account; if deletion reports an error, contact us to check completion.

Shared-plan links expire after seven days. The server deletes expired snapshots on an hourly schedule, normally within one hour of expiry; operational failures can delay physical removal while expired links remain inaccessible. Account deletion removes your own shared snapshots and invalidates their links. Older share links without an attributable owner are retired; create a new link if yours stops working. Independent copies another user already imported remain with that user.

Temporary import media is removed from the processing workspace when a request ends. Imported exercises, source metadata, and job results remain with your account. Under standard API settings, OpenAI can retain content for up to 30 days for abuse monitoring; Groq can retain content for up to 30 days for reliability or abuse investigations. We do not claim zero-data-retention settings are enabled.

Automatic database archives rotate after 30 successful daily backups. Removed or replaced S3 versions expire after a further 30 days; backup failures can delay rotation. Manual recovery archives do not expire automatically and require separate review for deletion requests. Operational logs, correspondence, and legal records remain only as needed for their purpose or a mandatory obligation; they are not active accounts.

See account deletion for procedures, backup limitations, and mailing-list choices. Copies another person imported from a shared plan and content held by its original platform are not automatically erased by deleting your Liftstash account.

Sign in with Apple credentials

For Sign in with Apple, the server retains an encrypted refresh token for revocation on account deletion. It is restricted to the server and removed after successful revocation. Short-lived access tokens are not retained as account-deletion credentials.

Your rights

Subject to applicable law, request access, a portable copy, correction, deletion, or restriction of your personal data. Withdraw consent and object to legitimate-interest processing. GDPR requests are normally answered within one month; complex requests can require an extension with notice. We may verify identity using information proportionate to the request.

You may complain to a data-protection supervisory authority, particularly in the EEA country where you live or work, or where an alleged infringement occurred. Contacting us first is optional. Do not send authentication secrets with a request.

Children and policy updates

Liftstash is a general fitness tool, not a children's service. Where a minor's use requires parental consent under applicable law, a parent or guardian must be involved. If you believe a child provided personal data without required consent, contact us.

We update this policy when the service or processing changes. Material changes to data-sharing permissions require an appropriate notice or renewed permission before changed processing. The date above identifies this version.