# slotplate > Opinionated client boilerplate for slot games on pixi-reels. FSM-driven, server-authoritative, agent-ready. ## Docs - [slotplate — Opinionated slot-game client on pixi-reels](https://slotplate.dev/): slotplate — an opinionated, agent-ready boilerplate for slot game clients built on pixi-reels. Pure flow, FSM phases, server-authoritative math. - [Architecture](https://slotplate.dev/architecture/): A tour of how slotplate is put together — one diagram per concept, with the rationale on the side. - [Client vs server](https://slotplate.dev/architecture/client-vs-server/): The single most important boundary in a slot codebase. - [Event flow](https://slotplate.dev/architecture/events/): Continuous state via MobX reactions; discrete events via typed emitters. - [FSM & phases](https://slotplate.dev/architecture/fsm/): Named phases, explicit transitions, one current state. - [Layered architecture](https://slotplate.dev/architecture/layers/): The stack with enforced import direction. - [Spin lifecycle](https://slotplate.dev/architecture/spin-lifecycle/): Phase-by-phase walkthrough of a round, with the sequence diagram as the anchor. - [Changelog](https://slotplate.dev/changelog/): Every release of create-slotplate. Generated by changesets, sourced from CHANGELOG.md. - [The composition root](https://slotplate.dev/concepts/composition-root/): One file that wires everything. Grepable. Replaceable. - [Disposables](https://slotplate.dev/concepts/disposables/): One cancellation primitive for everything. - [Fail loud](https://slotplate.dev/concepts/fail-loud/): Errors you see on day one are cheap. - [Infrastructure (I/O)](https://slotplate.dev/concepts/infrastructure/): Everything that talks to the outside world. - [Presenters](https://slotplate.dev/concepts/presenters/): State → view. Nothing more. - [Scenes](https://slotplate.dev/concepts/scenes/): Pixi application lifecycle, one scene per screen. - [State (MobX stores)](https://slotplate.dev/concepts/state/): Observable domain state — the read surface for presenters. - [Timing (no setTimeout)](https://slotplate.dev/concepts/timing/): Why game code never calls setTimeout — and what it calls instead. - [View (pixi-reels)](https://slotplate.dev/concepts/view/): The rendering surface, behind one presenter. - [What is slotplate?](https://slotplate.dev/docs/): An opinionated client boilerplate for slot games built on pixi-reels. - [Using slotplate with AI agents](https://slotplate.dev/docs/agents/): Point any coding agent at your slotplate project and keep it on-spec. - [Opinions](https://slotplate.dev/docs/opinions/): Every opinionated call slotplate makes, collected so you can decide if we're right for your team. - [The 10 Principles](https://slotplate.dev/docs/principles/): Hard rules. Break them and the diff should not pass review. - [Quickstart](https://slotplate.dev/docs/quickstart/): From zero to a running client in two commands. - [Behavior scenarios + test bridge](https://slotplate.dev/docs/testing/): Drive the live game from Playwright. Script every server response, simulate offline, click Pixi nodes by label, record sessions, and replay server logs. - [10-minute tour](https://slotplate.dev/docs/tour/): A guided walk through the generated client, in reading order. - [Guides](https://slotplate.dev/guides/): Task-oriented recipes. - [Add a phase](https://slotplate.dev/guides/add-phase/): Adding a new FSM phase (anticipation, bonus, big-win). - [Add a symbol](https://slotplate.dev/guides/add-symbol/): Adding a new reel symbol to a slotplate project. - [Analytics events](https://slotplate.dev/guides/analytics/): Instrumenting the FSM without coupling it to a vendor. - [Add a bonus game](https://slotplate.dev/guides/bonus/): Nest a sub-FSM inside a BonusPhase. - [Responsive & portrait layouts](https://slotplate.dev/guides/responsive/): Aspect-ratio-aware scenes without branching in business code. - [Spine symbols](https://slotplate.dev/guides/spine/): Rigged skeleton animation for reel symbols, following the bonbon-hw pattern. - [Swap the network transport](https://slotplate.dev/guides/swap-network/): Replace the mock with your RGS client in one file. - [Patterns](https://slotplate.dev/patterns/): The design patterns slotplate uses, one page each. - [Adapter / DTO](https://slotplate.dev/patterns/adapter/): Translating between layer shapes. - [Command](https://slotplate.dev/patterns/command/): Phase handlers as dispatchable commands. - [Composition root](https://slotplate.dev/patterns/composition-root/): One file that wires everything. - [Disposable](https://slotplate.dev/patterns/disposable/): One cancellation primitive for everything. - [Factory](https://slotplate.dev/patterns/factory/): SymbolFactory picks renderer per id. - [Finite state machine](https://slotplate.dev/patterns/fsm/): Named phases with enter/skip/exit. - [Object pool](https://slotplate.dev/patterns/object-pool/): Recycling symbols to avoid GC pressure. - [Observer](https://slotplate.dev/patterns/observer/): MobX reactions + typed event emitters. - [Presenter (MVP)](https://slotplate.dev/patterns/presenter/): State → view, nothing more. - [Strategy](https://slotplate.dev/patterns/strategy/): Swappable algorithms — spin modes, reel behaviors.