# Overview

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

Source: https://docs.hatched.live/docs/concepts/overview

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](/docs/concepts/buddy-and-hatch)** — the avatar, born from
  an egg, growing through evolution stages.
- **[Skills](/docs/concepts/skills)** — numeric dimensions like Grammar or
  Stamina that level up over time.
- **[Coins](/docs/concepts/coins)** — the primary currency, earned from
  events, spent in the marketplace.
- **[Tokens](/docs/concepts/tokens)** — secondary currencies (gems, hearts,
  stars) for more specialised economies.
- **[Streaks](/docs/concepts/streaks)** — consistency counters that tick
  daily and reward habit.
- **[Badges](/docs/concepts/badges)** — one-shot achievements that mark a
  specific moment.
- **[Paths](/docs/concepts/paths)** — multi-step guided journeys
  (onboarding, learning modules, certification tracks) with steps and
  sub-steps that complete via events or manual marks.
- **[Marketplace](/docs/concepts/marketplace)** — where users spend coins on
  items that show up in the widget.
- **[Leaderboard](/docs/concepts/leaderboard)** — competitive ranking with
  scoped visibility.
- **[Evolution](/docs/concepts/evolution)** — the long-horizon arc; the
  buddy changes appearance at milestones.
- **[Audiences](/docs/concepts/audiences)** — segmenting one customer into
  multiple user groups with separate rules.
- **[Config versions](/docs/concepts/config-versions)** — immutable
  snapshots of the whole rule set, pinned per buddy.
- **[Rule engine](/docs/concepts/rule-engine)** — the deterministic pipeline
  that converts events into effects.
- **[Webhooks](/docs/concepts/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.

## Where to next

- [Getting started](/docs/guides/getting-started) — create a buddy, send an event, embed a widget in ten minutes.
- [SDK quickstart](/docs/guides/sdk-quickstart) — the `@hatched/sdk-js` surface.
- [Configure rules](/docs/guides/configure-rules) — tune the economy in the dashboard.
- [Best practices](/docs/guides/best-practices) — patterns for an integration that scales.
