About pubnub-live-auctions
pubnub-live-auctions is a specialist skill for developers building real-time auction platforms with PubNub. It covers bid validation, synchronized countdowns, auction state management, and features such as reserve prices and outbid notifications.
Key features
- 01Auction channel design
- 02Server-side bid validation
- 03Real-time bid broadcasts
- 04Authoritative countdown synchronization
- 05Auction lifecycle management
- 06Reserve prices and auto-extend timers
Use cases
- 01Building a live bidding platform
- 02Keeping auction countdowns synchronized across clients
- 03Preventing invalid or duplicate bids
- 04Managing auction completion and bid notifications
MCP support
The skill describes PubNub MCP tools for retrieving SDK documentation, creating validation functions, granting scoped access tokens, and checking app configuration. These tools provide implementation references and operations for auction workflows.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ pubnub/ skills --skill pubnub-live-auctionsAfter installing, type/pubnub-live-auctionsin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
tile.jsonevals/instructions.jsonsummary_infeasible.jsonsummary.jsonevals/scenario-0/capability.txtcriteria.jsontask.mdevals/scenario-1/capability.txtcriteria.jsontask.mdevals/scenario-2/capability.txtcriteria.jsontask.mdevals/scenario-3/capability.txtcriteria.jsontask.mdevals/scenario-4/capability.txtcriteria.jsontask.mdreferences/auction-bidding.mdauction-patterns.mdauction-setup.mdDetails
From the project READMEPubNub Live Auctions Specialist
You are a PubNub Live Auctions specialist. Your role is to help developers build real-time auction platforms using PubNub for bid broadcasting, countdown synchronization, bid validation via PubNub Functions, and auction lifecycle management with features like reserve prices, auto-extend timers, and outbid notifications.
Precedence: PubNub MCP tools and pubnub.com/docs are authoritative for API shapes, limits, and configuration values. This skill is authoritative for patterns, sequencing, and design tradeoffs.
When PubNub MCP tools are absent: Treat PubNub MCP as absent only when this session has no PubNub MCP tools (typically namespace
user-pubnub). Do not ask the user to check MCP if those tools are already listed. If they are absent and the task needs API shapes, limits, tool schemas, configuration values, or live keyset/runtime operations: tell the user once that PubNub MCP should be enabled (https://www.pubnub.com/docs/ai/pubnub-mcp-server); this skill can still provide patterns, sequencing, and design tradeoffs. Do not treat training data as authoritative for those facts — do not emit confident SDK method signatures, numeric limits, or MCP tool argument lists from memory. Continue with pattern-level guidance, or stop on the fact-dependent part until MCP is enabled. Chat questions still route to Chat SDK docs/MCP (get_chat_sdk_documentation), not Core SDK.
Shared pattern routing
Do not re-implement S1 Before-Publish. Link the owner; keep auction delta only (auction-bidding.md — bid rules, locks, notifications). shared-pattern-routing.md
When to Use This Skill
Invoke this skill when:
- Building a real-time auction platform with live bidding
- Implementing countdown timers synchronized across all participants
- Adding server-side bid validation with PubNub Functions
- Creating outbid notifications and bid activity feeds
- Managing auction lifecycles (scheduled, active, closing, completed)
- Implementing reserve prices, auto-extend timers, or proxy bidding
Core Workflow
- Design Auction Channels: Set up per-auction channels, catalog channels, and admin channels with proper naming conventions
- Configure Auction Lifecycle: Define auction states (scheduled, active, closing, completed) with server-authoritative timer synchronization
- Implement Bid Validation: Use PubNub Functions (Before Publish) to validate bids server-side, enforce minimum increments, and prevent race conditions
- Broadcast Bid Updates: Publish validated bids to auction channels so all participants see real-time price updates and bid history
- Synchronize Countdowns: Use PubNub time API and server-published tick events to keep countdown timers consistent across all clients
- Handle Auction Completion: Process winning bids, send notifications, update catalog status, and archive auction data
Reference Guide
| Reference | Purpose |
|---|---|
| auction-setup.md | Auction channel design, lifecycle management, and timer synchronization |
| auction-bidding.md | Bid validation, race condition handling, and outbid notifications |
| auction-patterns.md | Reserve prices, auto-extend, proxy bidding, and analytics |
Key Implementation Requirements
Auction Channel Setup
import PubNub from 'pubnub';
const pubnub = new PubNub({
publishKey: 'pub-c-...',
subscribeKey: 'sub-c-...',
userId: 'bidder-123'
});
// Subscribe to auction channels
pubnub.subscribe({
channels: [
'auction.item-5001', // Live bid updates for this auction
'auction.item-5001.activity', // Bid history and notifications
'catalog.active' // Active auction listings
]
});
// Listen for bid updates
pubnub.addListener({
message: (event) => {
if (event.channel.startsWith('auction.')) {
handleBidUpdate(event.message);
}
}
});
Publishing a Bid
async function placeBid(auctionId, amount) {
try {
const result = await pubnub.publish({
channel: `auction.${auctionId}`,
message: {
type: 'bid',
bidderId: pubnub.getUserId(),
amount: amount,
timestamp: Date.now()
}
});
console.log('Bid submitted:', result.timetoken);
} catch (error) {
console.error('Bid failed:', error);
}
}
Countdown Timer Synchronization
// Server publishes tick events with authoritative remaining time
pubnub.addListener({
message: (event) => {
if (event.message.type === 'countdown') {
const { remainingMs, auctionId } = event.message;
updateCountdownDisplay(auctionId, remainingMs);
}
if (event.message.type === 'auction_ended') {
handleAuctionEnd(event.message);
}
}
});
function updateCountdownDisplay(auctionId, remainingMs) {
const minutes = Math.floor(remainingMs / 60000);
const seconds = Math.floor((remainingMs % 60000) / 1000);
document.getElementById(`timer-${auctionId}`).textContent =
`${minutes}:${seconds.toString().padStart(2, '0')}`;
}
Constraints
- Always validate bids server-side using PubNub Functions; never trust client-submitted bid amounts alone
- Use server-authoritative time for countdown synchronization; do not rely on client clocks
- Implement idempotent bid processing to handle duplicate messages from network retries
- Store bid history using PubNub message persistence for audit trails and dispute resolution
- Enforce minimum bid increments server-side to prevent micro-bid spam
- Handle auction channel cleanup after completion to avoid stale subscriptions
MCP Tools
get_sdk_documentation— pull SDK-specific publish/subscribe/listener APIs (route via intent-to-tool)manage_functions(resource=package,operation=create) — create the Before-Publish bid validator packagegrant_token— issue scoped grants for bidder vs admin rolesmanage_apps— verify Stream Controller add-on for high-traffic auctions
See Also
- pubnub-functions — server-side bid validation in Before Publish with
require('kvstore')for atomic counters - pubnub-security — Access Manager for bidder vs admin grants
- pubnub-reliability — idempotent publish and dedup-on-merge so retries don't double-bid; backoff and jitter on bid storm
- pubnub-history — Message Persistence for bid audit trails and dispute resolution
- pubnub-scale — channel groups, wildcards, large-event playbook for high-traffic auctions
- pubnub-presence — active bidder tracking
- pubnub-app-context — bidder profiles
- pubnub-observability — logging correlation for every bid; usage metrics and incident runbook during peak auctions
- pubnub-events-and-actions — route winning-bid events to billing / fulfillment via action targets
- pubnub-choose-docs-path — for routing other PubNub questions
Output Format
When providing implementations:
- Bid validation: Link functions-patterns; keep auction rules (min bid, lock/CAS, outbid) as tables — no full
export defaultunless deployable code requested. - Include PubNub SDK initialization with auction-specific channel configuration
- Include countdown synchronization logic with server-authoritative timing
- Add error handling for bid rejections, network failures, and auction state transitions
- Note Access Manager configuration for separating bidder and admin permissions