Playbook Library

Tools & Integration

Three ways to put Playbook into a live product without rebuilding it: drop-in web widgets, a structured content API, and a no-code configurator that brands the whole system for you.

The brand book and the messaging library tell you what to say. This is where you ship it. Whether your team works in a marketing tool or a codebase, there’s a path that fits: a single script tag, a set of JSON feeds, or a point-and-click configurator. All of it is open source and free to use.

Embeddable widgets

Three web components you add with one script tag — no framework, no build step.

Content API

Six JSON feeds of production-ready copy, myths, CTAs, campaigns, and assets.

Brand Configurator

A no-code tool that brands the whole system and exports a content kit.

Embeddable widgets

The fastest way to add Playbook to any web page. The widgets ship as standard web components in a single bundle of roughly 19 KB. Load the script once, then place any component like an ordinary HTML tag — it works in any site or CMS, with no framework required.

The one-line embed

Load the bundle, then use any of the three components:

<!-- Load the bundle (~19 KB) -->
<script src="https://gamblingpolicy.com/tools/playbook/widgets/playbook-widgets.js"></script>

<!-- Then drop in any component -->
<playbook-helpline number="1-800-GAMBLER" mode="banner" theme="dark"></playbook-helpline>
<playbook-myth api-url="/tools/playbook/api/myths.json"></playbook-myth>
<playbook-odds game="blackjack" theme="dark"></playbook-odds>

The three components

Helpline banner / badge

<playbook-helpline>

A full-width banner or compact badge with phone, text, and chat links — the single most common compliance element, surfaced consistently.

Modes: banner or badge. Themes: dark, light, or minimal. Set the number, an SMS text number, a chat URL, and the label text.

Myth card

<playbook-myth>

A rotating myth-buster card with a “Next myth” control, pulled live from the myths feed. Drop it on a blog, a help center, or a player dashboard.

Pull from the myths.json feed, optionally filter by category (e.g. slots) or pin a specific myth. Themes: dark or light.

Odds card

<playbook-odds>

A quick-reference card for a single game — house edge, RTP, and the key facts a player should know before they sit down.

Choose the game: slots, blackjack, roulette, sports-betting, baccarat, video-poker, craps, lottery, or bingo. Themes: dark or light.

Brand it without touching the code

Each widget renders inside its own Shadow DOM, so it never collides with your site’s styles. To match your brand, set three CSS custom properties — --pb-color-primary, --pb-color-secondary, and --pb-color-accent — on any ancestor element, and the widgets pick them up.

The content API

Six static JSON feeds, generated from Playbook’s source files. There’s no server to run — host them on any CDN or static file server, then fetch and filter the content in your app. This is the layer for teams that want the copy but want to build the interface themselves.

FeedRecordsWhat it gives you
messages.json 67 Core messages across every pillar (Open, Social, Smart, Aware, Help), tagged by touchpoint so you can pull the right line for the right moment.
myths.json 18 Each myth in three ready formats — a social card, an article explainer, and a quiz question — so one fact powers three channels.
ctas.json 50 Calls to action grouped by function and urgency, from “See the odds” to “Call now.” Ideal for A/B testing button copy.
campaigns.json 7 Complete campaign briefs with day-by-day schedules, captions, email copy, and KPIs — drop a full campaign into your calendar.
games/ 11 One structured guide per game — the odds, the house edge, and the myths — ready to render into an app or a microsite.
assets.json 96 A manifest of every brand asset — logos, icons, collateral, photography — with URLs and metadata for programmatic use.

Fetching a feed

A master index.json catalogs every endpoint and the brand metadata. From there, fetching and filtering is a few lines:

// Fetch messages and keep only the "Open" pillar
const res = await fetch('/tools/playbook/api/messages.json');
const { messages } = await res.json();
const open = messages.filter((m) => m.pillar === 'open');
About the placeholder tokens

Messages and CTAs may contain white-label tokens in double braces — for the program name, the helpline number, the minimum age, and so on. Replace each with your own value before deploying, or let the Brand Configurator resolve them all automatically.

The no-code Brand Configurator

For teams without a developer to hand. The Brand Configurator is a point-and-click tool: enter your program name, colors, helpline number, and minimum age, and it resolves every placeholder across the content, then packages a ready-to-use content kit. No code, no manual find-and-replace.

What you put in

  • Your program name and organization.
  • Brand colors, helpline number, and chat URL.
  • Minimum age and other market specifics.

What you get out

  • Every placeholder resolved to your values.
  • A downloadable content kit, ready to deploy.
  • Copy that matches the widgets and the API.

Open the Brand Configurator →

Helpful, not a compliance guarantee

These tools make it easy to surface responsible-gambling information consistently, but they don’t guarantee regulatory compliance. Requirements for helpline display, age verification, and disclosures vary by market and change often — pair the tools with the Compliance modules and your own legal review.

Which path is right for you

If you…Reach forEffort
Want a live element on a web page fastWidgetsOne script tag
Are building your own interface around the copyContent APIA few lines of fetch
Have no developer and want branded filesConfiguratorNo code

Source in the Playbook repo: widgets/ , api/