the roar

Bring the thunder of TD Garden to every screen.
A live companion for fans watching from anywhere — chat with your section, swing the gold-vs-blue roar meter, hold to roar with your real voice, and feel the crowd through it all. Remote fans, same building.
Bruins gold Leafs blue powered by TD
Browsers require one tap before audio plays — the first Cheer / Boo / Hold-to-roar or the speaker button unlocks the crowd.

Live section chat

Seat-tagged messages from your section, starting before puck drop.

Roar vs Boo meter

The building's voice in real time — gold pushing against blue.

Hold to roar

Measures the fan's real shout volume and feeds it into the meter.

Real crowd sound

Cheer & Boo stingers plus a live crowd bed — mute it from the meter.

Build it yourself

Live with the SportsTalk SDK in a few lines

The roar meter, cheer/boo counts, and whole-building crowd numbers are powered by the SportsTalk telemetry API. Push samples from any client; read one synchronized aggregate back to drive every meter.

import { Services } from 'sportstalk-sdk';

// One client — your app id + API key from the SportsTalk dashboard.
const telemetry = new Services.TelemetryService({ appId: 'YOUR_APP_ID', apiToken: 'YOUR_API_KEY' });

const game = 'game:bruins-leafs';   // any context id you choose
const user = 'fan-8417';

// 1 · Mic roar → push the live loudness (0..1) as a gauge sample
onRoarLevel(v => telemetry.sample(game, 'roar', { userid: user, value: v }));

// 2 · Cheer / Boo buttons → bump a counter metric
cheerBtn.onclick = () => telemetry.increment(game, 'cheer', { userid: user });
booBtn.onclick   = () => telemetry.increment(game, 'boo',   { userid: user });

// 3 · Read the live, whole-building aggregate (~1s) to drive the meters
setInterval(async () => {
  const { signals } = await telemetry.getSnapshot(game);
  signals.forEach(s => meter(s.key, s.intensity));   // intensity: 0..1, ready for a bar
}, 1000);

npm sportstalk-sdk · Services.TelemetryService · same calls work from web, mobile, or server.