The key point: StrokeLab does not upload your media for analysis. Some optional features and third-party services handle measurements, text or diagnostic information.
1. Who we are
StrokeLab is a tennis-practice app developed by David Fridshtand. This policy describes information handled by the app and this website. For support or privacy questions, contact support@fridshtand.ai.
StrokeLab does not require an app account. It does not include advertising or advertising trackers.
2. Information on your device
StrokeLab processes recorded or imported video, audio used for analysis, and body-pose information on your device. It does not upload your videos, images or audio for analysis.
The app can store the following in its private local storage:
- Copies of recorded or imported videos and analysis artifacts, including pose and technique measurements.
- Scores, coaching feedback, session and practice history, goals and personal bests.
- Your settings and optional profile information, such as a name or photo.
Camera and microphone access support recording. Access to selected media supports importing a clip or choosing a profile photo. You can manage these permissions in your phone’s settings.
App-private storage is protected by your operating system. StrokeLab does not add separate encryption to its local session database or video files. API keys use separate secure storage, described below.
3. Optional cloud coaching
When an OpenRouter API key is configured, cloud coaching can send technique measurements, scores, metric labels and generated descriptions of the motion to OpenRouter and the model provider that processes the request. If you enable optional natural-language cue rewriting, the cue text is also sent.
These requests do not contain raw video, photos, audio, raw pose coordinates or your profile name. Without an available API key, the app uses its built-in coaching.
Requests use HTTPS. StrokeLab asks OpenRouter to route requests to providers with restricted data collection and zero-data-retention settings. This request is not a guarantee that all service metadata or logs are absent; the provider’s policies and your OpenRouter account settings also apply. See OpenRouter’s privacy policy.
A key you save in the app is stored in the iOS Keychain or encrypted preferences on Android. Use the separate Remove key control in Settings to remove it. Clear all data does not remove your key.
4. SDK diagnostics and optional crash reports
Google ML Kit
StrokeLab uses Google ML Kit for on-device pose detection. ML Kit does not send the input media or resulting poses to Google. The SDK independently sends diagnostics and usage information, which can include device and app information, SDK versions, installation identifiers, API configuration, performance, events and errors.
This SDK behavior is separate from StrokeLab’s optional crash-reporting setting. See Google’s iOS disclosure, Android disclosure and ML Kit terms.
Optional Sentry reporting
Crash reporting is off by default and is available only in builds configured to use Sentry. If you enable it, reports can include errors, stack traces, recent app events, device and app context, and session-health information. A salted pseudonymous identifier may be used to relate reports from an installation.
StrokeLab filters reports to remove information such as file paths, email addresses and API tokens. Screenshot capture, session replay and performance tracing are not enabled. Reports should not be considered completely anonymous. You can turn reporting off in Settings; enabling it takes effect after restarting the app. See Sentry’s privacy policy.
5. Other connections and sharing
If you choose to use the optional 3D replay, the app downloads a pose model from Google-hosted storage. That download does not upload your video. The hosting service receives the network information needed to deliver the model.
Spoken cues use your device’s text-to-speech service. Its behavior depends on the operating system, voice and speech engine you select; StrokeLab does not enforce an offline-only speech engine.
If you export or share information, the destination you choose receives that copy. Those copies are controlled by you and the receiving service.
6. Retention and deletion
The default video-retention setting is Always. You can instead choose to keep a video for 30 days or delete it after analysis. Each session keeps the retention setting chosen when it was analysed. A later setting change applies to future analyses. The 30-day cleanup runs when the app starts; technique measurements can remain after a video is removed.
Deleting an individual session removes its session data and associated media, but related practice-day records, personal bests or previously exported copies can remain.
Clear all data in Settings removes app-owned analysis and training history, videos, artifacts, personal bests, app-owned exports and practice logs. It keeps your preferences, profile name and photo, and saved API key. Use the profile controls to edit your name or remove your photo, and the separate Remove key control to remove your API key.
These actions do not remove original videos from your photo library, files you shared or saved elsewhere, or copies already held in device backups. They also do not remove information already sent to external services; those services’ retention practices apply.
7. Device backups
On iOS, locally stored app files may be included in device backups, depending on your backup settings. Deleting something in the app does not change an older backup.
Android’s app-backup setting is disabled for StrokeLab. Copies that you export or share are outside that setting. Manage your device backups and external copies separately through the relevant device or service.
8. This website and email
This website uses locally hosted fonts and assets. It does not add analytics, advertising trackers or contact forms. Google Firebase Hosting processes network request information when delivering the site; see Google’s privacy policy.
If you email us, we receive your email address, message and any attachments you choose to send. Support email is forwarded through Namecheap and handled using Gmail. We use that information to answer your question, investigate the issue or handle your privacy request, and retain correspondence as needed for those purposes and applicable obligations.
You may contact us to request access to, correction of or deletion of information you have provided directly to us. We cannot retrieve app data that exists only on your device. Please do not send passwords or API keys in a support message.
9. Changes and contact
We may update this policy when the app, its services or its data practices change. The effective date at the top identifies the current version.
David Fridshtand
StrokeLab developer
support@fridshtand.ai