Abstract Play Developer Docs
Abstract Play is an open-source platform for playing abstract strategy games online.
The backend is TypeScript on AWS: Cognito for accounts, DynamoDB for data, Lambda and API Gateway for the API, and supporting services for bots, crons, and static assets. The front end is a React SPA served through CloudFront. Game logic lives in gameslib; board rendering in renderer; batch ratings and record schema in recranks.
We welcome contributors. Ask questions in Discord #dev-curious.
Documentation
Games Library
Game API, authoring guide, helpers, meta-game catalog, categories, and how to add new games.
Renderer
JSON schema for board representations, rendering engines, and interactive examples.
Backend
Serverless API, DynamoDB schema, bot framework, and subsystem guides.
Crons
Scheduled Lambdas: DB exports, static records, analytics, tournaments, and standing challenges.
Records & Rankings
Game record format, rating engines (ELO, Glicko-2, TrueSkill), and schema reference.
Front
React client: architecture, local dev, API usage, subsystems, and deployment.
Repositories
| Repository | Docs | Role |
|---|---|---|
| front | /front/ | React play client |
| gameslib | /gameslib/ | Game implementations and registry |
| renderer | /renderer/ | SVG board renderer |
| node-backend | /backend/, /crons/ | API, DynamoDB, bots, and scheduled jobs (crons/ in the same repo) |
| recranks | /recranks/ | Records and rating engines |
The former backend-crons repository is archived; crons code and docs now live under node-backend/crons/.
Related projects: Ai Ai bot (Java), community sites designer and zendo (Svelte) for experiments outside the main play stack.
Tooling references: Meta-game catalog (uids for integrations), Categories & tags.
Resources
- GitHub organization
- Community wiki — rules and player guides (
games:*articles) - Discord #dev-curious
- Renderer playground (full interactive demo)
- Gameslib playground (local game testing)