04

Zairoo

Game Design / Bot Infrastructure

RoleGame Designer & Engineer
TimelineAug 2025 — Ongoing
ClientPersonal Product
Zairoo screenshot

Overview

Zairoo is an original Afrocentric tabletop RPG system that doubles as the flagship ruleset on Cantrip. Two surfaces: a Discord bot (Hono API + discord.js, deployed on Railway) for play-by-message sessions, and a published Cantrip ruleset for full AI-DM-driven play.

The game system uses a five-stat spread (Grit / Vision / Soul / Vibe / Flow) and a Fate Path progression — designed first as a play-tested system, then implemented as a card-renderer package that produces the printable + digital character cards.

Challenge

Most original TTRPG systems are PDFs. Zairoo had to ship as software from day one — a Discord bot for low-friction sessions, a card-renderer for character art, and a Cantrip ruleset for AI-mediated play. Each surface had to honor the same canonical rules layer without duplicating logic.

Tech Stack

HonooRPCdiscord.jsNode.jsRailway

Architecture

One canonical rules layer (`packages/rules`) feeds three surfaces: the Discord bot (Hono + oRPC API + discord.js), the card-renderer package (HTML→PNG via Playwright for printable / shareable cards), and a Cantrip ruleset registration. Any rules change ships to all three with a single deploy. The bot is on Railway because that's where it runs cheapest as a long-lived process; web/card surfaces deploy on Vercel.

Key Features

01

Discord Bot

Hono + oRPC API and discord.js bot deployed on Railway. Players run sessions in any Discord server; the bot handles character creation, dice, and session state persistence.

02

Card Renderer

Standalone package that renders Zairoo character cards (stats, fate path, starting move) as PNGs for digital sharing or printing — single source of truth for character visuals across surfaces.

03

Cantrip Integration

Same canonical rules layer published as a Cantrip ruleset, unlocking AI-DM-driven play in the browser. The Discord bot and Cantrip both read from the same engine.

Zairoo screenshot 1

What I Learned

  • Game design is software design. Forcing the rules into a typed package early kept the Discord and Cantrip surfaces honest — every house-rule edge case became a type problem before it was a player problem.
  • Multi-surface from a single source costs nothing if the source is the rules. Costs everything if the source is a UI.
  • Discord's bot UX has hard ceilings. Some interactions (card galleries, fate-path tracking) only land on the web — accept the surface tradeoffs instead of fighting them.
Next ProjectLHBK Web