Architecture

Built to hand
to the next gym.

Helix was written as a multi-tenant system from the first migration, for data that has to be handled like medical data, and to give the same answer from the same inputs. Here is what each of those actually means.


Tenancy

One codebase, many gyms

The second gym is a row, not a branch. That only stays true if it was true on day one.

  • Scoped at the schema
    By construction

    A gym's records carry the organization they belong to. Reads are scoped by that organization, and a guard in the database client flags reads that forget. The shared library — exercises, equipment, the base taxonomy and the base templates — is the deliberate exception, shared by construction and explicitly so.

  • Settings, not forks
    One codebase

    Branding, timezone, the booking horizon and the late-cancel window are organization settings. No gym gets its own build, so no gym gets left behind on one.

  • Support without standing access
    Least privilege

    Helping a gym with a problem doesn't require a permanent account inside it. Support access is read-only, has to be granted, cannot be invited through any screen a gym's staff can reach, and expires on its own rather than waiting to be revoked.


Health data

Assessments are medical records

Injuries, medications and physio findings are the reason the programming works. They are also the reason the system can't be casual about storage.

  • Encrypted at rest
    AES-256-GCM

    Medical fields — considerations, medications, injury notes, assessment narratives — are encrypted in the database, not merely behind a login. That text survives a database dump as ciphertext; the key lives elsewhere.

  • Every endpoint leaves a trace
    Audited

    Every API endpoint that touches health data declares it, and the declaration is what writes the audit row — so the record of who looked at what is a property of the route, not a thing somebody remembered to add. If that row cannot be written, the read does not succeed.

  • One boundary, every role
    Role-gated

    Admin, coach, physio, athlete, front desk — and the read-only support role above. Injuries, assessments and the medical fields on a profile are admitted to admin, coach and physio; a front-desk account takes a payment and books a session without them.


The programming

Deterministic, not generative

The same inputs produce the same program. That is a design decision with consequences all the way down, and it is the one most often mistaken for a limitation.

  • No language model
    Same answer twice

    Programs come from a coaching method applied to each athlete's data. The same inputs give the same program, and when a program changes, something it was built from changed: the athlete, the gym's setup or the method. Never chance.

  • Every choice explained
    Explainable

    Each exercise Helix chooses carries the reason it was chosen, in coaching terms, which makes a coach's override a decision rather than a fight with a black box.

  • Your Coaching DNA is yours
    Optional add-on

    It's learned only from your own coaches' programs, and it's never shared with another gym without your written consent.


Discipline

The invariants are tested, not trusted

Everything above is a claim, and claims rot quietly. Each is held by tests whose job is to fail when it stops being true: tenant scoping (the guard is wired and its escape hatch bounded), the audit trail on health data (every endpoint that touches health data carries the flag), the role boundaries (every route's role list is inventoried, and the support role cannot change a gym's records), and the programming's determinism (the same inputs select the same program, run twice). They are required to merge, and production is built only from what merged.

Helix Athletic logo
The Helix Method.
Every athlete.
Request early access

Helix Athletic is onboarding partner gyms — access is granted by invitation.