Build apps that are fast, work offline, and just sync.

The real-time backend for your vibe coded frontend.

Project goals

Incredible DX

A declarative API that helps humans and agents get things right the first time.

Fully open source

No vendor lock-in. Designed to self-host. Deploy to a VPS or on bare metal at home.

Fast, reactive, and multiplayer

Data lives on the device, can be edited offline, and stays in sync with others.

Build apps, not infrastructure

Define your data. Query with a type-safe ORM. React when data changes — online or off.

  • -- Full type-safety with client-side validation
  • -- Declare relationships and permissions
  • -- Compose and reuse mutations easily
model.ts
import { e, defineModel, defineSchema } from "@ebbjs/core";

const todo = defineModel("todo", {
  schema: e.object({
    title: e.string(),
    completed: e.boolean(),
  }),
});

export const schema = defineSchema({
  todo,
});
import { createClient } from "@ebbjs/client";
import { schema } from "./model";

export const client = createClient({
  serverUrl: "http://localhost:3000",
  schema,
  fetch: {
    headers: {
      Authorization: `Bearer ${getToken()}`,
    },
  },
});
import { client } from "./client";

// Create
const todo = await client.todo.create(
  { title: "Ship it", completed: false },
);

// Update
await client.todo.update(todo.id, {
  completed: true,
});

// Query — works offline
const todos = await client.todo
  .find()
  .eq("completed", false)
  .orderBy("createdAt", "desc");
terminal
$ ebb deploy

  Bundling functions...
   sendEmail      12.3 KB
   processOrder    8.1 KB
   generateReport  5.7 KB

  Uploading to sidecar...
   3 functions deployed

  Activating v14v15...
   Live  zero downtime

  Deploy complete in 1.2s

Deploy in seconds. Rollback instantly.

Your server runs two processes: a persistent sync engine and a stateless sidecar. ebb deploy ships new code to the sidecar — the sync engine never restarts. Versions activate atomically, so there's zero downtime. Rolling back is just as fast.

  • -- ebb deploy — one command to ship
  • -- Atomic version swap — zero downtime
  • -- Instant rollback to any previous version

Real-time in no-time.

Every client gets a local replica that reads and writes instantly. Changes sync to all connected users in real-time — with presence, awareness, and conflict resolution. No polling, no spinners, no plumbing.

  • -- Local reads and optimistic writes — zero latency
  • -- Live presence and real-time updates across clients
  • -- Custom conflict resolution and no data loss
You
Alice
Bob

Roadmap

Where we are and where we're headed.

Complete prototype

Shipped

End-to-end proof of concept — local-first writes, sync, and materialization working together across client and server.

Core storage engine

In Progress

RocksDB-backed Action log with dual-writer pipelining and on-demand entity materialization via SQLite.

Sync protocol

In Progress

Three-phase sync: handshake, per-group catch-up with CDN-friendly pagination, and live SSE streaming.

Client SDK

In Progress

Local-first reactive client with offline writes, outbox, and automatic conflict resolution via typed field merges.

Auth & permissions

Planned

BYO auth integration with group-based access control. Permission checks run against an in-memory cache — never block on disk.

React bindings

Planned

useQuery, useClient, and EbbProvider hooks for reactive, type-safe data access in React apps.

Server functions

Planned

defineFunction handlers that run server-side with direct data access. Deploy, version, and roll back with a single CLI command.

Real-time presence

Planned

Ephemeral cursor and selection broadcasting for live multiplayer — fire-and-forget, not persisted.

Collaborative text

Planned

Yjs-powered rich text fields with character-level CRDT merge. Works offline, syncs automatically.

Server-side SDK

Planned

HTTP client for reading and writing ebb data from SSR frameworks, server actions, and external processes.

Self-hosting

Planned

Run the full sync server on your own infrastructure with a single Docker image.

CLI tooling

Planned

ebb deploy, function management, schema migrations, and project scaffolding from the command line.

Observability hooks

Planned

onAction server hook for piping the Action stream to analytics, audit logs, webhooks, or data warehouses.

Horizontal scaling

Planned

Multi-master replication across nodes for elastic throughput — no single writer bottleneck, automatic conflict resolution at the cluster level.

 

Stay in sync

ebb is in early development. Sign up to receive updates.