Bitskiff

Bitskiff documentation

On this page

Bitskiff connects a host to its clients, with data both ways in real time.

  • Run a host anywhere. Any program with the host SDK is a host: a browser tab, a Node process, a signage player. Everything an SDK does is one call in the REST API.
  • Hand out a join code. A client scans it and joins on the hosted client page or your own, and its place survives a reload, a locked device and a change of network.
  • Watch it, and get told. The console shows every session a project has open; webhooks tell your backend when a limit is close or crossed.
  • Know why it ended. A session that ends says why.

Get started

The first session, start to finish, and the packages behind it.

  • QuickstartOpen a session from a browser page and read the first press from a client, in four steps.
  • DownloadsEvery package as a tarball, for installing without a registry.
  • Server benchmarkWhat the data path from this device carries, direct and through TURN, with no session in it.

Build

What a session carries, and the shapes a host and a client page can take.

  • ChannelsA channel is a name you choose.
  • Client pagesA new project's join code opens the sample client page, so your first host needs no client code at all.
  • Controller inputSend a game controller's state as bytes on a lossy channel.
  • Node hostsRun a host as a program instead of a page.
  • Server hostsRun the host on your own server, and let the host's display only draw what the server sends it.
  • No build stepRun the host or client SDK in a browser with no build step.
  • TransportsTurn on peer for lower latency.

Examples

A whole host and its client page, each one built around something the SDK leaves to you.

  • Cat and mouseTwo clients join, each picks a role and confirms, and the game starts once both have confirmed different roles.
  • A queue and four slotsA venue host with four playing slots and any number of clients waiting.
  • A poll with a revealA presenter's host shows one question at a time, any number of clients answer from their devices, and the host reveals the tally when it chooses.

Operate

Hosts in the field: what a session does over time, what tells you it is healthy, and what it may use.

  • Session lifecycleA session moves through five phases, and only one of them is an end.
  • Limits and capacityEvery number a project runs into, what it refuses, and what clears it.
  • WebhooksA project's webhook is one signed HTTP request per event, so your backend learns a quota is close or crossed without polling for it.
  • Usage-based billingBill your own customers on what their sessions used, from the usage records Bitskiff keeps.
  • Unattended hostsA host with nobody standing at it -- signage in a lobby, a bot, a dedicated game host -- has one job: keep a session open.
  • CredentialsA credential is how a request proves it may act on your project.
  • One session per userLet each of your users run one session at a time, with a way to end the one that is stuck.
  • ConsoleThe console is where you create a project, mint the keys a host signs in with, and watch the sessions that project has open.

Reference

Every package you install, and the API under them.

  • @bitskiff/hostThe Bitskiff host SDK for a browser page or an Electron renderer.
  • @bitskiff/host-nodeThe Bitskiff host SDK for a headless Node 22 process.
  • @bitskiff/clientThe Bitskiff client SDK for a browser page.
  • @bitskiff/ui-kitFramework-free UI elements for a Bitskiff client page.
  • @bitskiff/cliThe Bitskiff command-line tool for managing a project.
  • REST APIEvery endpoint the service answers, what may call it, and every error code.
  • ChangelogEvery release, newest first: what was added, changed, deprecated, removed and fixed.