Wheelwright Terms of Service

Effective date: 2026-10-03 · Last updated: 2026-11-04

A bicycle wheelbuilding calculator and build record: enter hub and rim measurements, calculate spoke lengths, record tensiometer readings, and keep build sheets.

1. Agreement and app license

These terms apply to your use of Wheelwright (the “App”), published by the independent developer identified by Apple Developer Team ID ZM8LF8494F. By using the App you agree to these terms to the extent permitted by applicable law. If you do not agree, stop using it. Support and legal contact: captainlongevity@gmail.com.

The license for the App is governed by Apple’s Standard Licensed Application End User License Agreement. These terms explain the app service and purchases and supplement that license; they do not remove mandatory Apple terms or rights you have under applicable consumer law.

2. Purpose and limits

Wheelwright does not certify a wheel’s strength, structural integrity, or fitness for riding. Verify critical dimensions by measurement before cutting spokes. Confirm tension targets and lacing suitability with the component manufacturer and a qualified wheelbuilder; a computed value does not replace physical inspection. Component dimensions and tool curves are supplied by you, and are not a manufacturer-verified database.

Spoke calculations, tension conversions, and comparisons run locally. Wheelwright does not connect to a tensiometer, scrape component databases, or upload customer tags or build photos.

3. Free features and paid access

The free tier includes: Manual spoke-length calculation, two saved builds, one tool profile, and one tension snapshot per build.

Wheelwright offers a one-time Pro Lifetime purchase and Pro Annual or Pro Monthly subscriptions. Available products, regional availability, localized prices, billing period, and any introductory offer are shown in the app and Apple’s purchase confirmation. That confirmation controls the purchase; local development prices are not a promise of the current App Store price.

4. Paid features

Paid access unlocks the following features, subject to your device, permissions, and the limits described here:

5. Billing, trials, restoration, and refunds

Subscriptions continue on a recurring basis until canceled. Apple charges your Apple Account and handles purchase confirmation and renewals. Review the price and renewal date in Apple’s purchase sheet before confirming. Cancel through your Apple subscription settings before the next renewal; deleting the app does not cancel billing.

An introductory free trial is available only when Apple confirms eligibility for the subscription group and an applicable offer exists. The updated paywall checks eligibility before presenting trial benefits; unknown or ineligible accounts use ordinary subscription language. Apple’s purchase sheet confirms the actual duration, localized price and billing period before payment. Unless canceled at least 24 hours before the trial ends, the subscription converts to the displayed paid plan. Trial access may end when canceled and follows Apple’s verified expiry or revocation. Older installed app versions may display earlier offer wording until updated.

A Lifetime or Full Access one-time purchase is non-consumable and does not auto-renew. “Lifetime” means access to the purchased features in this app; it is not a promise of perpetual hosting, compatibility with every future device, or a separate future product.

Restore Purchases uses the Apple Account that made the eligible purchase. A subscription’s paid features depend on a valid entitlement. Cancellation does not by itself erase local records, but access can return to free-tier limits when paid access ends. Back up or save any records you need before removing the app.

The updated App reports unavailable products, purchase failures, cancellation, pending approval and restore results. Pending or unverified transactions do not create new paid access. Previously verified access is cached locally within its validity; verified expiry, revocation or upgrade removes the corresponding grant. Restore Purchases checks eligible Apple purchases, not saved build records. The updated App keeps a pending request as an informational state in memory, not proof of a completed purchase. Apple does not send a transaction when Ask to Buy is declined. You can refresh access or explicitly retry the purchase without restarting the App; retrying does not cancel an earlier request or grant paid access. Purchase and restore operations cannot overlap, and access still requires a verified eligible transaction. Older installed versions may show earlier purchase feedback until updated.

Apple manages billing and refund requests: manage or cancel a subscription; request a refund. Applicable consumer remedies remain available.

6. Your records and responsibilities

You retain your rights in the content you enter. You are responsible for the accuracy of input values and dates and for having the right to record, copy, import, or share personal information, photographs, contracts, patterns, or other material. Do not use the app to fabricate evidence, infringe intellectual-property rights, or unlawfully collect information about others.

Check generated results and any document before relying on or sharing it. Reference material can become outdated. Local notifications, timers, widgets, and calendar entries are conveniences, not guaranteed delivery or monitoring services. Do not rely on an alert alone for a safety-critical action or legal deadline.

7. Storage, privacy, and sharing

Your journal is kept in local app storage, with no developer-operated account or journal-sync service. Device failure, deletion, or a storage problem can affect access. Apple backups may include app data according to your settings; we cannot restore a record from a developer-operated server.

A build-sheet PDF is generated on your device and handed to the iOS Share Sheet when you choose to share it. There is no full-archive export or import.

The Wheelwright Privacy Policy explains local records, optional permissions, Apple purchases, support correspondence, website hosting.

8. Third-party material and services

Apple’s purchase and system services, external references you open, and destinations you choose for sharing are governed by their own terms. Names of manufacturers, agencies, associations, designers, or products are used for factual reference; Wheelwright is independent and does not claim endorsement or authority from them.

9. Availability and responsibility for outcomes

We aim to provide a useful app, but do not promise uninterrupted availability, error-free calculations, successful data recovery, or a particular legal, financial, training, craft, cooking, maintenance, or other outcome. To the extent permitted by law, the app and its reference information are provided as available without additional warranties beyond those required by law or stated in Apple’s applicable license.

To the extent permitted by law, we are not responsible for indirect or consequential losses arising from inaccurate inputs, reliance on estimates, missed reminders, unavailable third-party services, or lost local data. This clause does not exclude or limit liability where the law prohibits doing so, and does not waive statutory guarantees, refund rights, or other non-waivable consumer protections.

10. Updates and ending use

We may update the app and these terms to reflect changes in functionality or applicable requirements. The last-updated date identifies the current version of this page. Material changes will be made clear through the app or an appropriate notice when needed; an update does not retroactively remove mandatory consumer rights. You can stop using the app at any time. Cancel any subscription separately through Apple and manage local records and shared copies as needed.

11. Questions and disputes

Contact captainlongevity@gmail.com with the app name and a description of the issue. Please do not include unnecessary sensitive records. These terms do not impose a special foreign court, compulsory arbitration, or a waiver of remedies available under the laws that apply to you.

Deletion and retained records

The updated App strictly reads matching tension snapshots and photo entries, then commits their deletion together with the selected build. A failed read/save leaves these records available for retry. Unassigned and already detached records are retained; no automatic orphan purge is performed. Tool profiles remain separate; deleting a tool profile does not rewrite or erase frozen build and tension history. There is no Recently Deleted or full-database archive import; a build-sheet PDF is a reference copy. Independently saved exports, original system media and earlier backups require separate management. A record deletion does not erase those copies.

Optional sample records

In the updated app, Settings offers Add sample records with a confirmation. Samples are stored locally alongside ordinary records, can appear in totals, exports and widgets where those records are supported, and count toward applicable free limits. Adding samples does not erase existing records or grant paid access. Existing sample records from earlier versions remain until removed using the app’s applicable record controls.

The updated app stores the identifiers of builds and tool profiles inserted by its sample action in local preferences. Confirmed Remove sample records deletes only those tracked builds and their attached tension snapshots and photo entries after a successful save. A tracked tool profile is retained if a remaining snapshot uses it. Older untracked samples and unrelated builds, snapshots, photos and tool profiles are kept; names such as round 1 are not used to select records for this cleanup. Removal of active database records does not erase independent exports, older backups or guarantee immediate physical erasure of stored media.

When saved records cannot be opened

If the original local database cannot be opened, the updated App shows recovery guidance without creating an empty substitute store or starting normal database tasks. It preserves original files without promising repair. Earlier widget summaries, notifications and independent files may remain. Temporary form editing and intentional preview or test databases are not generally prohibited.

Check available device storage, close and reopen the App, and contact support before deleting or reinstalling it. This recovery screen is not a backup, a repair guarantee or an automatic restoration of missing records. Older installed versions may behave differently until updated.

Save failures, photos and session recovery

Build, component and tool forms keep temporary input until a checked Save. Cancel discards the current form without rolling back unrelated pending changes. A save or delete failure is reported rather than announcing success; input remains available to retry. Unchanged profile fields and opaque calibration bytes are retained rather than replaced merely by opening a form. Full-precision existing values are not rounded when hydrated. Closing a view or the App can lose unsaved form or photo-preparation input.

Selected photo bytes are prepared as a batch and then inserted in one checked database save. A failure does not intentionally save only part of that batch; the view offers retry or clear. No new photo is attached by a late callback after leaving the view. Imported bytes can retain embedded timestamps, device or location metadata. The App uses the system picker, not unrestricted library access or camera capture. Existing photo bytes are not removed because an image cannot currently decode. Photos use SwiftData external storage; deletion removes active records after commit and does not promise immediate physical erasure of every SQLite, media, backup or system copy.

A saved build contains a frozen calculation and provenance. Duplicating copies the frozen specification, name, customer tag and notes into a new build; it does not copy the original photos or snapshot history. Rebuild opens a fresh calculator for a separate save. Editing a component does not rewrite earlier frozen builds. User-entered component values and measurement-helper overrides have distinct labels; neither is a manufacturer verification.

Live tension-session recovery is a separate local preference copy, not the database or a full archive. It keeps the latest session’s identifiers, target, tolerance, position and entered readings. The updated format also keeps input mode, calibration points, current entry and geometric ratio; older copies may lack these fields. Saved calibration is used to resume without silently adopting an edited/deleted tool’s curve. Invalid frozen calibration is reported without adopting a different profile. An older curve-mode copy that lacks frozen calibration can use its current valid tool profile with an explicit reminder to verify that it matches the original; its previously recorded kgf values remain unchanged. Missing or invalid legacy calibration is reported and retained rather than treating raw readings as direct kgf. An encoding failure retains an earlier resume copy. Closing after further unsaved session changes attempts to preserve a new resume copy instead of clearing it merely because an earlier round was saved.

Deleting a build or tool profile does not automatically clear the separate resume preference. A missing linked build prevents saving a new attached snapshot until that reference is resolved; existing readings remain. Starting and persisting another session can replace the single latest resume copy. Corrupt or legacy bytes may remain for support/recovery review. Frozen snapshot kgf values are retained when a tool profile is deleted. This is not complete recovery of every session or original calibration in older versions.

The build-sheet PDF is an unencrypted readable selected report of frozen component/provenance details, spoke lengths, warnings, notes and available tension statistics. It omits photo originals and the complete snapshot history and cannot restore the database. Long text is paginated with the measurement warning on every page. Temporary PDFs may remain after sharing, interruption or cleanup failure; no immediate or periodic purge is guaranteed. Sharing destinations and recipients can keep their own copies. Device-backup recovery requires a usable completed backup and Apple’s restoration process.

Free creation limits count 2 currently stored builds, 1 currently stored tool profile and 1 currently stored snapshot per build; standalone snapshots are outside that per-build cap. Manual calculations, formula sheets, both measurement helpers, App Lock and the optional generic re-tension notification are free. Pro adds the saved component library, more records, snapshot comparison, PDF and widgets. Existing records are not deleted when paid access ends. The optional nudge is a generic approximately fourteen-day local reminder, not linked deletion/scheduling for each build or a safety inspection service.