Cobble is an authoritative realtime framework for writing simple, secure, and scalable apps.
Server-side access control and data validation is core to Cobble.
Ready-to-use realtime tools so you can focus on actually building.
Engineered for performance and scalability, Cobble is designed to grow.
Get a ready-to-go deployment within 30 seconds of creating an app.
Connecting...
Lights Out - Synchronized Between Everyone
(keep scrolling)
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.
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);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
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!Cobble comes with powerful pre-made building blocks to build your app.
Persistent, synchronized, and shared state with fine-grained controls.
Realtime transactions that feel like local invocations.
Anyhow back and forth message passing.
Easily manage users and keep state separated.
Secure your app with built-in authentication and authorization patterns.