Introduction
Blackevin is realtime messaging as a service — WebSocket channels, presence and history, with the events delivered on to your own systems.
What Blackevin is
Blackevin is realtime messaging as a service. Your clients open one WebSocket and get channels, presence and message history; your backend gets the same events delivered to it over webhooks, AMQP, Lambda or SNS.
The client SDK is Ably-shaped on purpose — channels.get, subscribe,
publish, presence.enter — so the mental model transfers and so does most of
the code.
import * as Blackevin from '@blackevin/client';
const realtime = new Blackevin.Realtime({ key: process.env.BLACKEVIN_KEY, clientId: 'bob' });
const channel = realtime.channels.get('chat:lobby');
channel.subscribe(message => console.log(message.name, message.data));
await channel.publish('hello', { text: 'hi' });The two halves
Blackevin is one product with two faces, and it helps to know which one you are talking to.
| what it is | where | |
|---|---|---|
| the node | the WebSocket gateway and the REST control plane | wss://ws.blackevin.com, https://api.blackevin.com |
| the console | accounts, API keys, integrations, usage | app.blackevin.com |
Everything in these docs is the node, except where it says otherwise. The console is where you create the key that the node then checks.
What you get
- Channels. Publish and subscribe by name. Wildcard matching (
*,>) on the server, an optional client-side name filter on top. - Presence. Who is on a channel right now, with enter / leave / update events fanned out to everyone attached.
- History. Recent messages and recent presence events, over REST, or
replayed into a subscription with
rewind. - Delivery outward. The same events pushed to your webhooks, your RabbitMQ, your Lambda or your SNS topic.
Start here
Or go straight to the reference
| Connect | new Blackevin.Realtime(...), endpoints, options |
| Channels | subscribe, publish, rewind |
| Presence | enter, leave, update, get |
| API keys | the secret.keyId format and where it comes from |
| Tokens | TokenRequest, the Blackevin JWT, minting from your backend |
| Capabilities | channel pattern → allowed operations |
| REST overview | authenticating an HTTP call, and what each endpoint checks |
| Opcodes | the wire protocol, if you are writing your own client |