The studio

Independent, prolific, and unbending about the protocol.

Toka Lab publishes its own products, in fields with nothing in common. What connects them isn't a theme — it's a way of building that no project gets to skip.

The protocol

Five stages, never out of order

A stage doesn't open until the one before it is closed. That rule isn't theoretical: it comes from an interface rebuilt from scratch because it had been made before its visuals.

  1. Rules

    Written out in full, edge cases included: deadlock, repetition, draws, running out of time.

  2. Validation

    Balance measured across thousands of games, exact solving where the size allows it.

  3. Visuals

    Final and approved before a single interface is built.

  4. Interface

    Built once, on those visuals. Never twice.

  5. Integration

    Engine, network, release — then nine automated checks, any one of which blocks delivery.

The checks

Nothing ships on a reading of the code alone

Every delivery is loaded into a real engine and exercised automatically. Nine checks; a single failure blocks the release.

Each of those checks matches a fault that once reached production. Once, and only once — every fault permanently adds a check to the list.

  • Script compilesNo dead page
  • Referenced elements existNo inert buttons
  • Stylesheet intactNo invisible board
  • No competing rulesNo overridden layout
  • Board geometryNo misplaced pieces
  • Links and document endNo dead link, no truncation
The discipline

Six rules that aren't up for discussion

  • Reproduce before fixing

    If a fault won't reproduce in a test, the hypothesis is wrong. We look further rather than patch on a hunch.

  • The cause, never the symptom

    A fix that stacks a rule on top of a faulty one is refused, even if it makes the problem disappear on screen.

  • One fix, one more check

    Any fault that reached production permanently joins the list of automated checks.

  • The name is frozen before the code

    No working titles, even internally. Storage keys carry the final name from day one, or user data disappears on rename.

  • No two mechanisms for one job

    Before adding behaviour, we find what already handles the same thing and neutralise it explicitly.

  • Validated means untouched

    A frozen decision stays frozen. When a request would reopen one as a side effect, we say so before writing anything.

On principle

And six things we'll never add

  • Advertising

    No banners, no video breaks, no rewards for watching.

  • Hidden purchases

    Nothing essential sits behind a payment.

  • Mandatory accounts

    Online play included. No personal data collected.

  • Tutorials

    If a product needs a manual, it's asking too much.

  • A network requirement

    The field has no signal, and neither does the train.

  • A product we don't like

    A prototype stays out of the catalogue until it's good enough.

A question, a bug, an idea?

Messages land with the people who write the rules. A good share of our fixes start there.