Documentation
Thunderclap delivers realtime events to your users over WebSockets. Your frontend subscribes to channels with @thunderclapjs/client (thunderclapJS), and your backend publishes to them and authorizes private channels with @thunderclapjs/server. Both are open source (MIT) and have no dependencies.
| Piece | Runs in | Uses |
|---|---|---|
@thunderclapjs/client | Browsers, React Native, Node.js 22+, Deno, Bun | Public key (THUNDERCLAP_KEY) |
@thunderclapjs/server | Your backend: Node.js, edge runtimes, anything with fetch and Web Crypto | App id and secret (THUNDERCLAP_APP_ID, THUNDERCLAP_SECRET) |
| Dashboard | thunderclap.dev/app | Apps, keys, webhooks and a debug console |
Getting started
Guides
ChannelsSubscribe, publish, name and type channels.Private channelsGrant channels with connection tokens or per-channel authorization.PresenceKnow who is in a channel.Client eventsLet subscribers message each other directly.Cache channelsGive late joiners the latest state.Missed messagesSequence numbers, gaps and backfilling.ConnectionStates, reconnects and excluding the sender.Keys and secretsCredentials, environments and rotation.WebhooksGet told what happens on your channels.Migrating from PusherChange the host, then move at your own pace.