Skip to content
@tabletop-commons

Tabletop Commons

Tabletop Commons

Open standards for board game data. Tabletop Commons is a community-driven effort to build the shared infrastructure the tabletop hobby has never had -- a specification, vocabulary, and API contract that any platform, app, or database can implement and interoperate with.

The Problem

Board game data is in a crisis.

BoardGameGeek is the de facto monopoly on board game metadata, but its API is an undocumented XML endpoint from the mid-2000s. It is rate-limited, fragile, and missing basic capabilities like filtering by player count and play time simultaneously. There is no official documentation, no versioning, and no contract -- it can change without notice. The data goes in and it does not come out.

Board Game Atlas attempted to be an alternative and then shut down entirely, taking its API and everyone's integrations with it.

No standard exists. Every board game app, collection tracker, and recommendation engine scrapes BGG or maintains its own ad-hoc database. There is no shared vocabulary, no common schema, no interoperability.

The state of the art is a single proprietary website with an XML API that was never designed to be an API, and no fallback when it goes down. A little competition could do the space some good -- but competition requires a shared foundation to build on.

The Commons

Tabletop Commons provides that foundation. Not by replacing BGG as a community -- BGG is a great forum and review site -- but by defining a specification so that multiple platforms, apps, and databases can exist, interoperate, and compete.

This follows a pattern that has worked across the software industry:

Standard Domain What it defines
SQL Databases Query language
ActivityPub Social media Federation protocol
FHIR Healthcare Health record format
iCalendar Scheduling Event data format
OpenTabletop Board games Data model + API contract

The pattern is always the same: define the interface, let implementations compete on quality. A Japanese board game community, a German hobbyist database, a university research project, and a commercial collection tracker can all implement the same spec and produce interoperable data.

The standard is the commons. The implementations are the marketplace.

The Three Pillars

Standardized Data Model

A rigorous, relational data model for board games and everything associated with them -- games, expansions, designers, publishers, mechanics, categories, player counts, play times, complexity weights -- all with well-defined types, relationships, and identifiers. The data model handles the hard problems: expansions that change player count, standalone expansions that are both their own game and part of a family, reimplementations that share mechanics but are distinct products.

Filtering and Windowing

The showcase feature. Compound, multi-dimensional filtering across six composable dimensions: player count, play time, weight, game mode and mechanics, themes, and metadata. Set effective=true to filter against expansion-modified properties. No board game service offers this today.

Statistical Foundation

Board game data is rich -- millions of ratings, weight votes, player count polls accumulated over two decades -- but today it is locked inside formats that make real analysis impossible. OpenTabletop specifies data structures built for analysis: vote distributions instead of single numbers, statistical percentiles instead of box estimates, raw exportable data instead of pre-computed averages.

What This Enables

Imagine it is game night. You have four people, about 90 minutes, and your group prefers medium-weight strategy games. One person does not like horror themes. With a conforming OpenTabletop server, this is a single API call -- cooperative games for exactly four players under 90 minutes at medium weight, excluding horror, sorted by rating, with expansion effects factored in. The search considers community-reported play times rather than the publisher's box estimate, because experienced groups often play faster or slower than the box suggests. No other board game API can answer this query today. The OpenTabletop specification defines exactly how.

Repositories

The specification. An OpenAPI 3.1 document defining the data model and API contract, comprehensive documentation with design rationale, 45+ Architecture Decision Records, controlled vocabularies for mechanics and categories, and sample data. This is the source of truth.

A reference implementation in Rust (Axum + PostgreSQL) that exercises the spec's core pillars: game metadata, community ratings, expansion-aware filtering, compound search, and vote materialization. Designed to prove out the specification and give implementers a working example.

Get Involved

OpenTabletop is in the specification phase -- the best time to shape the standard.

  • Read the spec -- start with the documentation to understand the data model and design decisions
  • Join the discussion -- spec changes follow an RFC process through GitHub Discussions
  • Report issues -- data corrections, spec gaps, and implementation questions are all welcome via GitHub Issues
  • Build an implementation -- the spec ships schemas, vocabularies, and sample data -- everything you need to build a conforming server or client in the language of your choice

License

Code is licensed under Apache 2.0. The specification and documentation are licensed under CC-BY-4.0.

Pinned Loading

  1. OpenTabletop OpenTabletop Public

    An open-source API specification and data standard for structured, queryable board game data.

    HTML

  2. ott-demo-api ott-demo-api Public

    Demo API server conforming to the OpenTabletop commons spec

    Rust

Repositories

Showing 3 of 3 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…