Privacy Policy
Last updated: September 20, 2026
HOKKALON Inc. ("we", "us") respects the privacy of users of the mobile app "Gym Anyway" (Japanese name: とりあえずジム, the "App") and handles information according to this policy. The App requires no sign-in and is local-first: your workout data is stored on your device. Unless you sign in and turn on "Sync across devices" in Settings, this data is not stored on our servers.
1. Information We Collect
- Stored on your device: Workout logs (exercise, weight, reps, sets, date and time), plan structure, the gym you registered and its equipment, the answers you gave during onboarding (goal, training experience, weekly target, usual session length, target muscle mass, body parts to avoid), notification settings, display language, and other preferences. These are stored in a local database (SQLite) and the OS preference storage on your device, and are not sent to our servers unless you use the sign-in or sync features described below.
- Sent for sign-in: If you sign in with Apple or Google, the identifier (subject) issued by Apple or Google, a user ID (UUID) we generate, and a refresh token (stored hashed) used for authentication are sent to and stored on our server (Cloudflare Workers / D1). We do not send or store your name or email address. Signing in is optional; if you do not sign in, none of this information is sent.
- Sent if you turn on multi-device sync: If you sign in and turn on "Sync across devices" in Settings, the following data is sent to and stored on our server (Cloudflare Workers / D1): workout logs (exercise, weight, reps, sets, date and time), workout plans (menu structure), the gym you registered and its equipment, and weight and waist measurements. We do not send or store your name or email address.
- Sent if you turn on body photo sync: Only if you also separately turn on "Sync body photos" in addition to "Sync across devices" are body photos sent to and stored on our server (Cloudflare R2). Unless you turn this setting on, body photos are never sent to our server.
- Sent for subscription verification: When you use paid features, the anonymous app user ID issued by RevenueCat, the platform (e.g. iOS), the app version, and the display language code are sent to our Cloudflare Workers API (api.gymanyway.hokkapp.com). No name, email address, or phone number is included.
- Sent when loading form videos: When a form video or step-by-step instructions are shown, the exercise ID (an identifier we assign) is sent to our API, which then retrieves the video URL and instructions from MuscleWiki.
- Purchase information: When you purchase a subscription, the App Store and RevenueCat process the receipt and subscription status. We only read the entitlement status (active / inactive) and an anonymous ID; we never receive your credit card details.
- Usage analytics: To improve the App, we may collect usage events (screen views, feature usage, workout start and completion, errors) via Mixpanel. No name, email address, or contact information is sent. When these events are sent, Mixpanel estimates an approximate location (country, region, and city level) from the sending IP address and attaches it to the event. This estimation happens on Mixpanel's servers based on the IP address; the App itself never accesses or transmits your device's GPS or other device-based location, and it never requests location permission. We use this approximate location to understand which countries and regions the App is used in and to prioritize feature improvements.
- Install identifier: So that usage can be understood over time, the App generates a random identifier (a UUID) on first launch, stores it on your device, and attaches it to analytics events. We generate this identifier ourselves; it is unrelated to your device's advertising identifier, device model, name, or email address. It is lost when you uninstall the App, and a new one is generated if you install it again.
- Crash and error reports: If the App crashes, we collect crash reports (location in the code, device model, OS version, app version) via Sentry to investigate the cause. The content of your workout logs is not sent.
- Automatically collected: When our API is accessed, Cloudflare temporarily records the IP address and access time for rate limiting and abuse prevention.
2. Purpose of Use
- Providing, operating, and improving the App (plan generation, exercise swapping, form videos, workout summaries)
- Subscription billing and purchase restoration (via the App Store / RevenueCat)
- Detecting and preventing abuse and API misuse
- Investigating and fixing defects, and responding to support requests
- Improving service quality through aggregate usage analysis
- Letting you see the same workout logs, plans, and body photos across multiple devices (only for users who turn the relevant sync feature on)
3. Third-Party Services
The App uses the following third-party services. Each service's own privacy policy applies.
- Cloudflare (Workers / D1 / KV): API delivery, rate limiting, edge computing, hosting of this website
- MuscleWiki: Exercise data and form videos
- RevenueCat: Subscription management and entitlement checks
- Apple App Store: App distribution and billing
- Mixpanel: Usage analytics (with an install identifier)
- Sentry: Crash and error reporting
4. Retention and Deletion
- On-device data: Deleted entirely when you uninstall the App.
- Synced data (if you turned on multi-device sync): Turning "Sync across devices" off does not automatically delete data already sent to the server. Running "Delete account" in Settings deletes your sign-in credentials (the identifier and authentication tokens linked to your sign-in) and synced data (workout logs, plans, gym settings, weight, and waist records) on our server. When turning off "Sync across devices," you can also choose to delete the synced data on the server at that time. Deletion is carried out immediately on our servers, but data may remain for up to 30 days in the database's (Cloudflare D1) point-in-time restore data, which is then purged automatically.
- Body photos: Turning "Sync body photos" off deletes any body photos already stored on our server. They are also deleted when you delete your account. Deletion is carried out immediately on our servers, and photos (Cloudflare R2) are deleted immediately with no versioning.
- API logs: We do not permanently store request bodies on the server. Short-lived operational logs are deleted within 30 days.
- Purchase information: Retained by the store and RevenueCat to the extent required by law (accounting and tax).
5. Your Rights
If you would like your data disclosed, corrected, or deleted, contact y-ishiba@hokkalon.com. You can delete on-device data yourself at any time by uninstalling the App.
6. Security
API traffic is encrypted with TLS. Our API implements rate limiting and signed session token authentication to help prevent abuse.
7. International Transfers
The servers of Cloudflare, RevenueCat, Mixpanel, Sentry, and MuscleWiki used by the App are located outside Japan (primarily in the United States). Using the App may cause the information described above to be sent to those servers. If you turn on multi-device sync or body photo sync, that synced data is also processed on Cloudflare's network. Appropriate safeguards are in place at the destinations.
8. Children's Privacy
The App is not directed at children under 13. Minors should use the App with the consent of a parent or guardian.
9. Changes to This Policy
We may update this policy as needed. Material changes will be announced in the App or on this page.
10. Contact
Questions about this policy can be sent to y-ishiba@hokkalon.com.
11. Language
This policy is prepared in Japanese, and this English text is a translation provided for convenience. If there is any discrepancy, the Japanese version prevails.