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.