Take The Time Out Of Realtime

Cobble is an authoritative realtime framework for writing simple, secure, and scalable apps.

Secure By Design

Server-side access control and data validation is core to Cobble.

Realtime Primitives

Ready-to-use realtime tools so you can focus on actually building.

Built to Scale

Engineered for performance and scalability, Cobble is designed to grow.

Cloud Deployments

Get a ready-to-go deployment within 30 seconds of creating an app.

Connecting...

Lights Out - Synchronized Between Everyone

(keep scrolling)

It's as Simple as That.

Create a realtime server in seconds.

Fumbling with Socket.io and Express

Implementing authentication patterns

Managing state across multiple clients

Handling complex data structures

Scaling your application

No need to reinvent the wheel.

1

Scaffold project with `cobble create`

View scaffold for...


// [1] Import Cobble server library
use cobble::prelude::*;

fn build() -> App {
println!("Hello, world!");

App::builder()
// [2] Declare application functionality
.rpc("greet", |Params(name): Params<String>| {
format!("Hello, {}!", name)
})
.build()
}

// [3] Register the application to be ran
cobble::register!(build);
2

Start a server with `cobble run`

INFO: Running build command `...` in ...


≽^•⩊•^≼ ──☆*:・₊※*・:*:`♪:*:。*・☆*

... (compiler magic) ...


INFO: Build completed in 123.45ms

INFO: [dev] Loaded room from ...server.wasm

INFO: Development server listening on 1147

3

Connect to the server with a Cobble client

// [1] Import Cobble client library
import { CobbleClient } from "@usecobble/client";

// [2] Connect to the Cobble server
const client = new CobbleClient(/* options */);
await client.connect();

// [3] Call the RPC method
const greeting = await client.rpc("greet", "World");
console.log(greeting); // Outputs: Hello, World!

Goodbye Boilerplate!

Cobble comes with powerful pre-made building blocks to build your app.


Stores

Persistent, synchronized, and shared state with fine-grained controls.

Remote Procedure Calls (RPCs)

Realtime transactions that feel like local invocations.

Channels

Anyhow back and forth message passing.

Rooms

Easily manage users and keep state separated.

Authentication

Secure your app with built-in authentication and authorization patterns.

It's time for realtime.