SpacetimeDB combines a relational database and an application server into one process. You write your schema and business logic as a module (in Rust, C#, TypeScript, or C++), upload it into the database, and clients connect straight to it, no separate backend in between. It's aimed at developers building real-time multiplayer games, live collaborative apps, or any system where clients need instant, consistent state updates without hand-rolled sync layers.
SpacetimeDB fits projects that need real-time, stateful synchronization between many clients and a shared source of truth: multiplayer games, MMORPGs, live dashboards, collaborative editors, or chat apps where every client must see the same state instantly. It works well when you want to avoid building and maintaining a separate server tier, a caching layer, and a sync protocol by hand.
It is not a good fit if you need a conventional stateless REST/GraphQL API backed by a standard SQL database with existing ORM tooling, since the entire model here is different: logic lives inside the database as reducers, not as separate service code. It's also not the right choice if your workload is primarily batch analytics, data warehousing, or if you need to run on infrastructure that can't run the SpacetimeDB binary or module runtime. Teams already deeply invested in a traditional three-tier architecture (client, server, database) will face a real architectural shift adopting this.
Install the CLI on macOS/Linux:
curl -sSf https://install.spacetimedb.com | sh
On Windows (PowerShell):
iwr https://windows.spacetimedb.com -useb | iex
Log in (opens a browser to authenticate with GitHub, linking your identity so you can publish databases):
spacetime login
Start a project from a template, which publishes it and watches for changes:
spacetime dev --template chat-react-ts
Alternatively, run SpacetimeDB with Docker:
docker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start
To build from source (useful for unreleased master features), you need the Rust toolchain with the wasm32-unknown-unknown target:
curl https://sh.rustup.rs -sSf | sh
git clone https://github.com/clockworklabs/SpacetimeDB
cd SpacetimeDB
cargo build --locked --release -p spacetimedb-standalone -p spacetimedb-update -p spacetimedb-cli
After building, copy the resulting binaries into place per the platform-specific instructions in the README, then verify with:
spacetime --version
Full documentation, including quickstarts per language, core concepts (tables, reducers, subscriptions, authentication), tutorials, and a CLI/SQL reference, is available at spacetimedb.com/docs.