HatchedDocs
Concepts

Overview

The thirteen primitives that make up every Hatched gamification programme, and how they fit together.

Hatched gives a product a buddy — a companion that grows as its user does. Everything else on Hatched exists to feed the buddy: events go in, effects come out, a widget shows the result.

The whole picture in one paragraph

A user does something in your product (lesson_completed, checkout_succeeded). You send it as an event. The rule engine turns it into effects — skills level up, coins are earned, a badge might unlock, a streak ticks, the buddy moves closer to its next evolution stage. Users spend coins in the marketplace. Your backend gets webhooks when anything interesting happens.

The primitives

  • Buddy & hatch — the avatar, born from an egg, growing through evolution stages.
  • Skills — numeric dimensions like Grammar or Stamina that level up over time.
  • Coins — the primary currency, earned from events, spent in the marketplace.
  • Tokens — secondary currencies (gems, hearts, stars) for more specialised economies.
  • Streaks — consistency counters that tick daily and reward habit.
  • Badges — one-shot achievements that mark a specific moment.
  • Marketplace — where users spend coins on items that show up in the widget.
  • Leaderboard — competitive ranking with scoped visibility.
  • Evolution — the long-horizon arc; the buddy changes appearance at milestones.
  • Audiences — segmenting one customer into multiple user groups with separate rules.
  • Config versions — immutable snapshots of the whole rule set, pinned per buddy.
  • Rule engine — the deterministic pipeline that converts events into effects.
  • Webhooks — signed HTTP callbacks that let your backend react to anything.

Design principles

  • Template-first over free-form. Rule types are a fixed enum; we chose fewer knobs over infinite configurability.
  • Publish before live. Config changes land on a draft, then get published as a new immutable version. Existing buddies stay on their pinned version.
  • Canonical state in Hatched. Your product can keep a copy for UX, but Hatched owns the truth.
  • Async by default. Image generation, webhook delivery and other slow paths run off a queue and expose an operation you can poll.