A practical index for independent tabletop RPG creators

Everything useful for designing, producing, marketing, and selling TTRPGs.

TTRPG Library is a curated, searchable resource hub for designers building games from blank page to finished book: game theory, RPG design blogs, playtesting, layout, accessibility, production, crowdfunding, marketplaces, communities, and academic reading.

Design better games

Compare procedures, mechanics, safety, incentives, uncertainty, player agency, GM authority, setting, pacing, scenario structure, combat, and emergent play.

Produce cleaner books

Find resources on editing, layout, accessibility, print specs, SRDs, licences, art direction, digital files, PDFs, and print-on-demand.

Sell without guessing

Use the publishing and marketing sections to plan an itch.io or DriveThruRPG launch, crowdfunding campaign, mailing list, press kit, retail route, or convention push.

Learning paths

Where to start depending on what you are making

First one-page RPG

  1. Read rules-as-procedures and simple resolution theory.
  2. Write one core loop and one conflict rule.
  3. Playtest with strangers; revise for clarity.
  4. Release free or pay-what-you-want on itch.io.

Indie zine or ashcan

  1. Define audience, tone, table promise, and safety assumptions.
  2. Prototype layout early; test reference speed.
  3. Budget art, editing, proofing, and fulfilment.
  4. Build mailing list before crowdfunding.

Full core book

  1. Map procedures, progression, GM support, and campaign structure.
  2. Run staged playtests: internal, friendly, blind, public.
  3. Prepare accessibility-first PDF and print files.
  4. Choose marketplace, crowdfunding, fulfilment, and post-launch support.

The library

Search and filter the resource directory

Links go to the original publishers. This site summarises and organises resources; it does not reproduce copyrighted articles or books.

Maintainer notes

This is intentionally built as a static directory: no database, no analytics, no cookies, no user accounts. The resource data lives in resources.js, so adding entries is as simple as duplicating one object and changing its fields.