Privacy Policy
Effective date: 26 October 2026
This Privacy Policy describes how Hashiru (“Hashiru”, “we”, “us”, or “our”) handles personal information when you use our running training planner (the “Service”). It applies whether you use the Service as a guest or create an account. Our Terms and Conditions govern use of the Service.
1. Information you provide
- Account information. If you register, we collect your email address and password. The account also has an identifier, a display-name field initially set to “Runner”, and creation and update timestamps. Passwords are stored as cryptographic hashes, rather than in plain text.
- Training plans. We store the information you save in the planner, including race names, dates and distances; primary and secondary race goals; race effort and preparation choices; weekly running distances; running days; preferred hard-session and long-run days; and training history and experience supplied for plan generation.
- Workouts and commitments. This includes workout names, dates, distances, types, effort instructions, structured steps, notes, and lock or skip choices. It also includes recurring and one-off activities, unavailable days, expected intensity, running distance, date ranges, and excluded dates.
- Optional threshold information. You may enter lactate threshold heart rate and, optionally, threshold pace to assist with effort guidance. These values may reveal information about your fitness or health. They are not required to use the planner. Turning assistance off hides that guidance but does not, by itself, erase values already saved in the plan.
Providing training details is voluntary, although the planner needs relevant race, availability, and baseline information to generate a useful plan. An email address and password are required only to create an account. Please do not include medical records, information about other people, or other sensitive information in activity names or notes unless it is necessary for your own planning and you are entitled to provide it.
2. Guest drafts and identifiers
Guest access does not require an account. When you first save a guest draft, we create a random browser credential in an essential cookie and store a hash of that credential alongside your server-stored plans. We also store plan identifiers, version numbers, creation and update timestamps, and the time of the most recent qualifying activity.
This is pseudonymous storage, rather than a guarantee of anonymity: a guest identifier, technical request data, and the contents of a plan may relate to an identifiable person. Your browser credential permits access to your guest drafts, so you should protect access to your device and browser. A plan identifier alone does not grant access.
When you successfully register or sign in and return to the planner in the same browser, matching unexpired guest drafts are linked to that account alongside any existing account plans.
3. Technical and security information
Requests to the Service involve technical information such as IP addresses, browser and user-agent information, requested URLs, and request timing and status. Authentication sessions store an identifier, session token, account identifier, expiry and activity timestamps, and may store the requesting IP address and user agent. Authentication rate-limiting records help detect and restrict excessive requests.
Our hosting configuration enables operational logging and sampled tracing through Cloudflare. These facilities process request and diagnostic information to operate the Service, investigate errors, and maintain security. We do not use this information to build advertising profiles.
4. How we use information
We use information to provide the features you request: generating and displaying training plans, saving edits, working around commitments and races, calculating optional effort guidance, restoring guest drafts, authenticating accounts, and keeping account plans available across devices. We also use relevant technical information to enforce access controls, prevent abuse, diagnose faults, and meet applicable legal obligations.
Plan generation currently uses programmed training rules and workout templates. We do not send your plans or threshold values to an AI provider. Garmin and Strava connections, activity imports, watch synchronisation, and email delivery are not enabled. We do not currently send verification, password-reset, marketing, or guest-expiry emails.
We do not collect payment-card details, use advertising or third-party analytics integrations, sell personal information, or share it for targeted advertising. The Service does not access device GPS, continuously monitor heart rate, or import fitness records. Fonts are served with the application rather than requested from an external font service.
5. Essential cookies
The Service uses cookies for its requested functionality, rather than advertising or cross-site tracking:
- Guest access:
hashiru.guestholds the browser credential for guest drafts. Its lifetime is 30 days and is renewed when qualifying guest activity renews access. - Plan selection:
hashiru.active-planremembers the selected plan for up to 30 days and is refreshed when the plan is selected or loaded. It is a selector, not an access credential. - Authentication: Better Auth uses essential session cookies to keep you signed in. A standard session has a seven-day lifetime and may be renewed through continued use. Cookie names may carry a secure prefix on HTTPS.
Guest and plan-selection cookies are HTTP-only, use SameSite protections, and are marked Secure when served over HTTPS. You can block or delete cookies in your browser, but doing so may prevent signing in, remembering your selected plan, or recovering guest drafts. Deleting a browser cookie does not delete the corresponding server record. The application does not use browser local storage or session storage to persist your plans.
6. Service providers and disclosure
Cloudflare provides the hosting, request processing, database storage through D1, and operational logging and tracing used by the Service. Information needed to deliver and secure the Service is processed through that infrastructure. Better Auth and Drizzle are software libraries running within the application; their use does not create a separate hosted authentication or database account with those library authors.
We do not make training plans publicly accessible or provide a public sharing feed. Access by the operator or a service provider must be limited to legitimate operation, support, security, or legal requirements. We may disclose relevant information where required by law, a valid legal process, or where lawfully necessary to protect people or the security of the Service.
Cloudflare operates internationally. Information may be processed or stored outside your country, and the Service does not promise storage in a particular country. Any international processing must comply with the protections required by applicable law. See Cloudflare’s Privacy Policy for its description of infrastructure-related processing.
7. Retention and deletion
Guest drafts: access expires after 30 consecutive days without a qualifying planner visit or successful change. Returning to the planner in the same browser before expiry renews access to that browser’s unexpired guest drafts. Expired drafts become inaccessible and are eligible for removal by periodic cleanup; physical deletion may occur later than the access-expiry time. The planner displays the inactivity limit, but no off-site reminder is sent. Clearing cookies or using another browser can make a draft inaccessible before that period ends.
Account data: account-linked plans are not subject to guest cleanup. We retain account information and saved plans to provide your account and requested storage. No automatic deletion period for inactive accounts is configured. Personal information should not be retained longer than necessary for the purposes described in this Policy or a lawful retention requirement.
Security records and historic copies: sessions expire separately from account and plan retention. Operational records and any database recovery copies follow their applicable security and provider retention arrangements, rather than the guest-draft access limit. Removing an item from a plan updates the active plan record and may not immediately remove historic recovery copies.
The Service does not currently offer a self-service account-deletion or full-data-export control. Signing out, skipping a workout, or switching off threshold assistance is not an account-deletion request.
8. Security
We use measures intended to protect personal information, including hashed passwords, hashed guest credentials in the database, server-side ownership checks, input validation, and authentication rate limiting. These measures reduce risk but cannot guarantee that transmission, storage, or access will always be secure. Keep your password and browser access private, and avoid entering information the Service does not need.
9. Your choices and rights
You can use the planner without an account, edit saved training details through the planner, and choose whether to provide optional threshold information. If you do not provide an optional value, the corresponding assistance will not be available.
Subject to applicable law, you may request access to or correction of personal information held about you and may have rights to deletion, restriction, objection, or portability. We may need proportionate information to verify your identity or authority over a guest draft before acting. Do not disclose your password or guest browser credential in a request. If a request cannot be granted, we will explain the reason to the extent required by law. You may also raise concerns with the privacy regulator in your jurisdiction.
10. Changes to this Policy
We may update this Policy when the Service or its information practices change. The effective date above identifies this version. Material changes will be brought to users’ attention through the Service, and any additional notice or consent required by applicable law will be provided before the relevant processing begins. An update does not remove rights you already have under applicable law.