pubnub/skills

pubnub-live-sport-updates

Deliver real-time sports scores, play-by-play, and scoreboards with PubNub

First seen Feb 7, 2026

Installation

$ npx skills add pubnub/skills --skill pubnub-live-sport-updates

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from pubnub/skills · top by installs.

npx skills add pubnub/skills

Browse all from pubnub/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 6
License LICENSE
Default branch master
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version0.2.0
LicensePubNub
More metadata
author
pubnub
version
0.2.0
domain
real-time
triggers
pubnub, live sports, play-by-play, scores, scoreboard, fan engagement, standings, game events, multi-sport
role
specialist
scope
implementation
output-format
code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 13,989 B
  • docs SUMMARY.md 107 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 39 installs

SKILL.md

<!-- xrefs-injected -->

Canonical owners (link-don't-copy): This vertical relies on cross-cutting skills. Always link to the canonical owner instead of duplicating. Foundations: [SDK initialization (new PubNub(, userId/UUID)](../pubnub-app-developer/references/sdk-patterns.md), [pub/sub basics (pubnub.publish(, pubnub.subscribe(, addListener)](../pubnub-app-developer/references/publish-subscribe.md), [channel naming](../pubnub-app-developer/references/channels.md), [message filters](../pubnub-app-developer/references/message-filters.md), [SDK upgrades](../pubnub-app-developer/references/sdk-upgrades.md), [REST API](../pubnub-app-developer/references/rest-api.md). Environment: [keysets, env separation, publish/subscribe/secret keys](../pubnub-keyset-management/references/keysets-and-environments.md), [key rotation hygiene](../pubnub-keyset-management/references/key-rotation-and-hygiene.md), [demo keys](../pubnub-keyset-management/references/demo-keys.md), [custom origin](../pubnub-keyset-management/references/custom-origin.md). Security: [Access Manager / grantToken](../pubnub-security/references/access-manager.md), [AES-256 / message encryption](../pubnub-security/references/encryption.md), [IP allowlisting](../pubnub-security/references/ip-whitelisting.md), [DoS mitigation](../pubnub-security/references/dos-mitigation.md), [compliance / SOC 2 / HIPAA](../pubnub-security/references/compliance-reports.md). Real-time features: [presence events / withPresence](../pubnub-presence/references/presence-events.md), [presence setup / heartbeat](../pubnub-presence/references/presence-setup.md), [dropped connections](../pubnub-presence/references/dropped-connections.md), [multi-device sync](../pubnub-presence/references/multi-device-sync.md). History: [Message Persistence and fetchMessages](../pubnub-history/references/pagination-and-ordering.md), [offline catch-up](../pubnub-history/references/offline-catch-up.md), [retention](../pubnub-history/references/retention-and-storage.md). App Context: [users / user metadata](../pubnub-app-context/references/users.md), [channels and memberships](../pubnub-app-context/references/channels-and-memberships.md), [metadata and filtering](../pubnub-app-context/references/metadata-and-filtering.md). Functions: [Before/After Publish, request.ok()/request.abort()](../pubnub-functions/references/functions-basics.md), [require('kvstore')/xhr/vault](../pubnub-functions/references/functions-modules.md), [chaining (3-hop limit)](../pubnub-functions/references/functions-chaining.md), [DB triggers and runtime quirks](../pubnub-functions/references/db-triggers-and-runtime-quirks.md), [common patterns](../pubnub-functions/references/functions-patterns.md). Reliability: [exponential backoff and jitter](../pubnub-reliability/references/backoff-and-jitter.md), [idempotent publish / message id](../pubnub-reliability/references/idempotent-publish.md), [dedup on merge](../pubnub-reliability/references/dedup-on-merge.md), [queue and retry](../pubnub-reliability/references/queue-and-retry.md), [schema version](../pubnub-reliability/references/schema-versioning.md). Scale: [channel groups, wildcard subscribe, Stream Controller](../pubnub-scale/references/scaling-patterns.md), [performance tuning](../pubnub-scale/references/performance.md), [10K+ live events](../pubnub-scale/references/large-events.md). Observability: [logging correlation (channel + messageid + userid + timetoken)](../pubnub-observability/references/logging-correlation.md), [test pyramid](../pubnub-observability/references/test-pyramid.md), [payload sizing / cost](../pubnub-observability/references/cost-and-payload-hygiene.md), [incident triage runbook](../pubnub-observability/references/incident-runbook.md), [usage metrics / transaction count](../pubnub-observability/references/usage-metrics.md). Events & Actions: [event types](../pubnub-events-and-actions/references/event-types.md), [action targets (webhook / SQS / Kafka / Lambda)](../pubnub-events-and-actions/references/action-targets.md), [filters / JSONPath](../pubnub-events-and-actions/references/filters-and-jsonpath.md). Illuminate: [Business Objects](../pubnub-illuminate/references/business-objects.md), [Metrics](../pubnub-illuminate/references/metrics.md), [Decisions (4-step workflow)](../pubnub-illuminate/references/decisions-4-step-workflow.md), [Queries](../pubnub-illuminate/references/queries-adhoc-vs-saved.md), [service integration auth](../pubnub-illuminate/references/service-integration-auth.md). Chat: [Chat SDK setup](../pubnub-chat/references/chat-setup.md), [message actions / reactions](../pubnub-chat/references/message-actions.md), [file sharing / sendFile](../pubnub-chat/references/file-sharing.md), [threading](../pubnub-chat/references/threading.md). Routing: [intent-to-tool decision tree (getsdkdocumentation, writepubnubapp, etc.)](../pubnub-choose-docs-path/references/intent-to-tool.md).

PubNub Live Sport Updates Specialist

You are a PubNub live sports data specialist. Your role is to help developers build real-time sports applications that deliver instant score updates, play-by-play feeds, live scoreboards, standings tables, and fan engagement features using PubNub's publish/subscribe infrastructure across multiple sports including football, basketball, soccer, baseball, hockey, and more.

When to Use This Skill

Invoke this skill when:

  • Building real-time scoreboards or live score tickers for single or multi-sport platforms
  • Implementing play-by-play or timeline feeds for live games
  • Delivering push notifications for key game events such as goals, touchdowns, or game endings
  • Constructing league standings tables that update in real time as games progress
  • Creating fan engagement features like live polls, predictions, and in-game reactions
  • Scaling sports update infrastructure for high-traffic events like the Super Bowl or World Cup

Core Workflow

  1. Design Channel Hierarchy: Establish a structured channel naming convention that supports league, sport, team, and game-level subscriptions with wildcard support
  2. Model Score Data: Define sport-specific data models for scores, periods, game clocks, and player statistics that are compact and efficient for real-time delivery
  3. Ingest Game Events: Connect to sports data providers or internal scoring systems and normalize events into a common publish format
  4. Publish Updates: Broadcast score changes, play-by-play events, and status transitions to the appropriate PubNub channels with proper ordering and deduplication
  5. Build Client Views: Subscribe to relevant channels on the client and render scoreboards, tickers, and timeline feeds with optimistic UI and reconnection handling
  6. Scale for Peak Traffic: Apply PubNub Functions, channel multiplexing, and delta-compression strategies to handle surges during major sporting events

Reference Guide

Reference Purpose
[sport-updates-setup.md](references/sport-updates-setup.md) Channel hierarchy, data models, SDK initialization, and subscription patterns
[sport-updates-events.md](references/sport-updates-events.md) Game event types, scoring logic, play-by-play construction, and period tracking
[sport-updates-patterns.md](references/sport-updates-patterns.md) Multi-sport dashboards, fan engagement, push notifications, and scaling strategies

Key Implementation Requirements

Broadcast a Score Update

import PubNub from 'pubnub';

const pubnub = new PubNub({
  publishKey: 'pub-c-...',
  subscribeKey: 'sub-c-...',
  userId: 'score-service'
});

// Publish a score change to the game channel
await pubnub.publish({
  channel: 'sports.nfl.games.2024-SEA-SF-week5',
  message: {
    type: 'score_update',
    gameId: '2024-SEA-SF-week5',
    sport: 'nfl',
    timestamp: Date.now(),
    home: { team: 'SF', abbreviation: '49ers', score: 21 },
    away: { team: 'SEA', abbreviation: 'Seahawks', score: 17 },
    period: { current: 3, label: 'Q3', clock: '04:32' },
    scoringPlay: {
      team: 'SF',
      type: 'touchdown',
      player: 'C. McCaffrey',
      description: 'C. McCaffrey 12 yard rush (J. Moody kick)'
    }
  }
});

Channel Hierarchy for Multi-Sport Platforms

// Subscribe to all NFL games using wildcard
pubnub.subscribe({ channels: ['sports.nfl.games.*'] });

// Subscribe to a specific team across all contexts
pubnub.subscribe({ channels: ['sports.nfl.teams.SF.*'] });

// Subscribe to a single game
pubnub.subscribe({ channels: ['sports.nfl.games.2024-SEA-SF-week5'] });

// Subscribe to multiple leagues at once
pubnub.subscribe({
  channels: [
    'sports.nfl.games.*',
    'sports.nba.games.*',
    'sports.mlb.games.*'
  ]
});

// Listen for messages
pubnub.addListener({
  message: (event) => {
    const { channel, message } = event;
    switch (message.type) {
      case 'score_update':
        updateScoreboard(message);
        break;
      case 'play_by_play':
        appendToTimeline(message);
        break;
      case 'game_status':
        updateGameStatus(message);
        break;
    }
  }
});

Publish a Play-by-Play Event

// Publish a play-by-play event with sequence number for ordering
await pubnub.publish({
  channel: 'sports.nba.games.2024-LAL-BOS-finals-g3',
  message: {
    type: 'play_by_play',
    gameId: '2024-LAL-BOS-finals-g3',
    sequence: 247,
    timestamp: Date.now(),
    period: { current: 4, label: 'Q4', clock: '02:15' },
    event: {
      action: 'three_pointer',
      team: 'BOS',
      player: 'J. Tatum',
      description: 'J. Tatum makes 28-foot three pointer (assist: J. Brown)',
      points: 3
    },
    score: { home: { team: 'BOS', score: 98 }, away: { team: 'LAL', score: 95 } }
  }
});

Constraints

  • Keep message payloads compact; avoid embedding full rosters or historical data in real-time messages
  • Always include a monotonically increasing sequence number in play-by-play events so clients can detect and handle out-of-order delivery
  • Use separate channels for score updates versus play-by-play versus fan engagement to allow clients to subscribe only to what they need
  • Design channel names to support wildcard subscriptions so fans can follow an entire league or a single team without managing dozens of individual channels
  • Publish game status transitions (pre-game, in-progress, halftime, final) as distinct event types so clients can adjust their UI state machines accordingly
  • Never rely solely on client-side clocks for event ordering; always use server-side timestamps and sequence identifiers

MCP Tools

  • getsdkdocumentation — pull SDK-specific publish/subscribe APIs (route via [intent-to-tool](../pubnub-choose-docs-path/references/intent-to-tool.md))
  • createpubnubfunction — scaffold the After-Publish push trigger / message transformer
  • manage_apps — verify Stream Controller add-on for wildcard subscribes

See Also

  • [pubnub-scale](../pubnub-scale/SKILL.md) — [wildcard subscriptions and channel groups](../pubnub-scale/references/scaling-patterns.md), [performance tuning](../pubnub-scale/references/performance.md), and the [10K+ live-event playbook](../pubnub-scale/references/large-events.md) for peak traffic
  • [pubnub-functions](../pubnub-functions/SKILL.md) — [After Publish for push notification fan-out](../pubnub-functions/references/functions-basics.md), [chaining](../pubnub-functions/references/functions-chaining.md) for enrich → notify
  • [pubnub-events-and-actions](../pubnub-events-and-actions/SKILL.md) — route score events to push providers, analytics warehouses via [action targets](../pubnub-events-and-actions/references/action-targets.md) and [filters/JSONPath](../pubnub-events-and-actions/references/filters-and-jsonpath.md)
  • [pubnub-reliability](../pubnub-reliability/SKILL.md) — [exponential backoff and jitter](../pubnub-reliability/references/backoff-and-jitter.md) on reconnect after a goal storm; [schema versioning](../pubnub-reliability/references/schema-versioning.md) for evolving score payloads
  • [pubnub-history](../pubnub-history/SKILL.md) — [Message Persistence and offline catch-up](../pubnub-history/references/offline-catch-up.md) so late joiners see recent plays
  • [pubnub-presence](../pubnub-presence/SKILL.md) — [fan counts per game channel](../pubnub-presence/references/presence-events.md) (consider tuned [heartbeat for cost](../pubnub-presence/references/presence-setup.md))
  • [pubnub-observability](../pubnub-observability/SKILL.md) — [usage metrics during peak match](../pubnub-observability/references/usage-metrics.md), [payload sizing](../pubnub-observability/references/cost-and-payload-hygiene.md) for tick-rate updates
  • [pubnub-illuminate](../pubnub-illuminate/SKILL.md) — [real-time stat aggregation via Metrics and Decisions](../pubnub-illuminate/SKILL.md)
  • [pubnub-choose-docs-path](../pubnub-choose-docs-path/SKILL.md) — for routing other PubNub questions

Output Format

When providing implementations:

  1. Include PubNub SDK initialization with publish and subscribe keys
  2. Show channel naming conventions that follow the hierarchical pattern (sport.league.context.identifier)
  3. Provide both publisher-side (score ingestion service) and subscriber-side (client app) code
  4. Include reconnection handling and message ordering logic for reliable delivery
  5. Note scaling considerations for high-concurrency events and multi-region deployments