Real-time for your apps, without running WebSockets yourself.
Thuum.dev connects your users, devices and services live. Publish events, share state and get notified the moment something changes. Built for frontends, just as good in the backend.
WebSockets are easy. Real-time apps are not.
Opening a socket takes one line. Running one for real users takes a whole system. Here is what Thuum.dev already does for you.
Two brokers. Everything real-time.
Most real-time features are either something that happened, or how things are right now. Thuum.dev has a broker for each.
Something happened.
Streams of events on topics: chat messages, moves, alerts, finished jobs. Subscribers get them live; anyone who missed some catches up from the topic's recent history.
- Publish and subscribe over one WebSocket
- Recent history per main topic, kept by count and age
- Publish from a backend with a single POST
This is how things are now.
Live JSON values, organized by topic and key: presence, cursors, a document, a scoreboard. Change one, and everyone subscribed gets the new value.
- Set, merge (JSON Merge Patch) or delete a value
- Versions to drop out-of-order updates
- Ask for the current value, or broadcast it to everyone
Built for apps people use together
If your users should see something the moment it happens, Thuum.dev is a fit.
Chat and comments
Rooms, threads and replies, delivered to every participant at once.
Collaborative tools
Whiteboards, live cursors and shared documents that stay in sync.
Multiplayer games
Moves, turns and game state, shared between players in real time.
Live dashboards
Metrics and statuses that update themselves. No refresh button.
Notifications and feeds
Tell a user, a team or everyone that something just happened.
Presence
Who's online, who's looking, who's typing.
IoT and telemetry
Devices report readings; screens and services react.
Live polls and Q&A
Votes and questions that appear as the audience sends them.
Order and delivery tracking
Status changes reach the customer the moment they happen.
Frontend-first. Backend-ready.
Connect straight from the browser with a typed TypeScript client, or from any server language over plain REST and WebSocket. Same brokers, same permissions.
In the browser
Exchange a key for a token, connect, subscribe, publish. A chat on the Event Broker and a live cursor on the State Broker:
import { ThuumClient } from '@thuum/client';
const thuum = new ThuumClient({ baseUrl: 'https://api.thuum.dev' });
const { token } = await thuum.exchangeToken('acme', appKey);
const acme = thuum.domain('acme', token);
const chat = acme.eventBroker.connect();
await chat.ready;
chat.onMessage((event) => show(event.data));
await chat.sub('room:7');
await chat.pub('room:7', 'message', { text: 'Hello!' });
const board = acme.stateBroker.connect();
await board.ready;
board.onChange(({ key, value }) => draw(key, value));
await board.sub('board:42');
await board.merge('board:42', 'cursor:alice', { x: 120, y: 80 });On your servers
No SDK needed: get a token, then publish an event (or set a state) with one HTTP request, from any language.
TOKEN=$(curl -s -X POST https://api.thuum.dev/api/acme/token \
-H 'content-type: application/json' \
-d '{"key":"<your App Key>"}' | jq -r .data.token)
curl -X POST https://api.thuum.dev/api/acme/event/data/orders \
-H "authorization: Bearer $TOKEN" \
-H 'content-type: application/json' \
-d '{"type":"order.shipped","data":{"id":1042}}'Secure by design
App Keys stay secret
A key is only exchanged for a token. Thuum.dev stores a hash, never the key.
Short-lived tokens
Each key sets its tokens' lifetime, from one second up to a day.
Least privilege
Claims grant each key exactly the flags it needs, topic by topic.
Renew without downtime
Link a new key to the same claims, then retire the old one.
Example apps
Small apps built on Thuum.dev, to try it live and to learn from.
Thuum Chat
A chat application: rooms, messages, typing and who's online.
Thuum Paint
A white canvas for painting together, every stroke live on every screen.
Thuum Board
A meeting board instead of a shared screen: everyone moves, edits and estimates items, live.
Thuum Poll
Ask a question and watch the votes come in live.
Thuum Scoreboard
A live scoreboard for matches, tournaments or office games, updated on every screen.
Thuum Tier List
Rank anything together: drag items into tiers and see everyone's picks live.
Thuum Tabletop
A virtual table for board and card games: pieces, dice and turns, shared live.
Thuum Playground
Publish, set and subscribe live, and see every frame on the wire and the code that does it.
Ready to go real-time?
Thuum.dev is in early access, and we set up every account personally. Already have an App Key? Sign in and start building.