Connect all viewers of a slideshow in a shared lobby.
Chat, poll, and play games — right inside your presentation.
Look at the bottom-left corner to get started ↓
The first visitor to open this presentation becomes the HUB.
All subsequent visitors connect as participants in a shared lobby.
The lobby ID is derived from the page URL. No setup needed — just share the link.
Powered by PeerJS and WebRTC. No server required beyond the signaling service.
The hub relays messages between all peers for reliable delivery.
Direct peer connections for real-time features like the Pong game.
As the first visitor (Hub), you get special powers:
Instantly navigate all viewers to your current slide. Great for guided presentations.
Continuously sync your slide position to all viewers. They follow along as you present.
Create a question with configurable answers. Viewers get 10 seconds to vote, then see results.
Your username displays with a [HUB] tag so everyone knows who's in charge.
The Hub can launch live polls with a 10-second countdown:
Try it now if you're the Hub!
Right-click any user in the lobby panel and select "Challenge to Pong":
The Hub can launch an arena game for all lobby members:
Hub syncs timing and runs authoritative collision detection.
Click the user icon in the toolbar to open settings:
All settings are persisted in localStorage across sessions.
Add the plugin to any Reveal.js presentation:
<script src="reveal-peerjs.js"></script>
<script>
Reveal.initialize({
plugins: [RevealPeerJS]
});
</script>
Or with ES modules:
import Reveal from 'reveal.js';
import RevealPeerJS from 'reveal-peerjs';
Reveal.initialize({
plugins: [RevealPeerJS]
});
┌──────────────────────────────────┐
│ Reveal.js Deck │
│ │
│ ┌────────────────────────────┐ │
│ │ RevealPeerJS Plugin │ │
│ │ │ │
│ │ ┌──────┐ ┌───────────┐ │ │
│ │ │Toolbar│ │LobbyPanel │ │ │
│ │ └──────┘ │ ├─Users │ │ │
│ │ │ └─Chat │ │ │
│ │ ┌──────┐ └───────────┘ │ │
│ │ │Settings│ ┌──────────┐ │ │
│ │ │ Modal │ │ HubMenu │ │ │
│ │ └──────┘ │ ├─JumpAll │ │ │
│ │ │ ├─Follow │ │ │
│ │ ┌─────┐ │ ├─Polls │ │ │
│ │ │Pong │ │ └─Arena │ │ │
│ │ └─────┘ └──────────┘ │ │
│ │ ┌───────┐ │ │
│ │ │Arena │ │ │
│ │ │Shooter│ │ │
│ │ └───────┘ │ │
│ │ ┌──────────────────┐ │ │
│ │ │ LobbyNetwork │ │ │
│ │ │ (PeerJS Star) │ │ │
│ │ └──────────────────┘ │ │
│ └────────────────────────────┘ │
└──────────────────────────────────┘
Open this page in another browser tab or window
to see the lobby in action.
▼
Check the toolbar in the bottom-left corner