mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Dataevaluationupdated 26 Aug 2026

SpacetimeDB review

SpacetimeDB is a source-available relational database that also runs application logic and sends live changes to connected clients. Developers put tables and server functions in Rust, C#, TypeScript, or C++ modules, removing the usual API server from many real-time apps and multiplayer games.

+14stars / 7d
Verdict

Our SpacetimeDB checkout installed 2,801 packages and used 1,602 MB, then failed both its 6-second build and its 15-second test run, so source contributors should expect repair work before a clean first pass. The product is still worth a prototype for multiplayer or synchronized applications because its database, server logic, and subscriptions form one understandable model. Do not make it the center of a production system until the BSL terms, client platform, and failure recovery fit your deployment.

We ran it

Lab card: what happened when we ran SpacetimeDBScreenshot of SpacetimeDB (spacetimedb.com)
Install✓ · 63s2801 packages · 1602 MB
Build✗ · 6s
Tests✗ · 15s280 passed · 9 failed of 289 (vitest)
Repo6887 files~702,424 lines of source · 62.3 MB · 17 CI workflows · Dockerfile

Answers from our run

Does SpacetimeDB build from source?

Dependencies installed in 63 seconds (2801 packages), and the build failed. We cloned commit cfa9636 into a clean Debian container with 3 CPUs and no project-specific setup.

Do SpacetimeDB's tests pass?

Not all of them: 280 of 289 passed and 9 failed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use SpacetimeDB?

Organizations requiring an OSI-approved open-source license today: the license says BSL 1.1 is not open source and its standard production grant permits no more than one SpacetimeDB instance.

What are the alternatives to SpacetimeDB?

Supabase, Electric, Convex. Our SpacetimeDB checkout installed 2,801 packages and used 1,602 MB, then failed both its 6-second build and its 15-second test run, so source contributors should expect repair work before a clean first pass.

Setup2/563-second install, then both build and test commands failed
Docs4/5Clear quick starts and source build steps, but Node drift broke docs
Community5/525,075 stars with same-day pushes and issue activity
Maturity3/5v2.8.3 is active, but client gaps and failed checks remain

Discussed on

  1. hnShow HN: SpacetimeDB – A database that replaces your server80 points
  2. hnSpacetimeDB v1.0: Multiplayer at the speed of light65 points
  3. hnSpacetimeDB: A new database written in Rust that replaces your server26 points
  4. hnShow HN: SpacetimeDB 1.0 Is Here21 points
  5. hnSpacetimeDB v0.7 Released: WebAssembly stored procedure database written in Rust5 points

Who it’s for

Multiplayer teams evaluating SpacetimeDB v2.8.3 that want authoritative shared state and live client subscriptions in one system.
Developers willing to put business logic inside database modules instead of maintaining a separate API service.
Rust, C#, TypeScript, or C++ teams that can test generated client bindings on their exact target platforms.
Small teams that want to prototype on Maincloud, then make a deliberate hosted-versus-local deployment choice.

Who it’s NOT for

Organizations requiring an OSI-approved open-source license today: the license says BSL 1.1 is not open source and its standard production grant permits no more than one SpacetimeDB instance.
Database-service vendors: the BSL additional grant specifically excludes using SpacetimeDB to offer a database service.
Teams that want ordinary database drivers and a separate application tier: clients call reducers and subscribe to tables through SpacetimeDB's SDK model.
Proprietary-engine or console teams needing a documented standalone C++ client: open issue #5238 says the current client material is centered on Unreal.
C# browser projects that cannot test around platform gaps: open issue #2414 reproduces a Blazor failure caused by starting a thread in the browser.

Setup reality

Our sandbox install succeeded in 63 seconds, adding 2,801 pnpm packages and using 1,602 MB. The build failed after 6 seconds because the docs workspace reported Node.js 18.20.8 while requiring Node.js 20 or newer. Tests failed after 15 seconds: Vitest reported 280 passed and 9 failed out of 289, split across 2 files.

The shortest README path installs the CLI, opens a browser for GitHub authentication, and publishes a watched template to Maincloud. Local evaluation can use the documented Docker command without that hosted flow. Building the standalone binaries from source requires Rust plus the wasm32-unknown-unknown target.

The checkout at commit cfa9636 contained 6,887 files, about 702,424 source lines, and 17 CI workflow files. It is a 62.3 MB monorepo with Docker and Compose files, but our dependency install grew to 1,602 MB. Production use also needs a license check because the current BSL grant limits standard production use to one instance and excludes database services.

The database also runs the application server

SpacetimeDB 2.8.3 puts tables and business logic inside the database, with server modules available in 4 languages. You upload a module containing tables and business logic into the database, then clients call reducers and subscribe to rows through generated SDK bindings. A reducer runs inside a transaction, while subscriptions deliver matching changes without polling. For chat, presence, shared documents, and multiplayer state, that can remove an API service and a separate synchronization layer. It also means the database choice defines much more of the application than a PostgreSQL driver would.

Those 4 server-module choices are Rust, C#, TypeScript, and C++. Client SDKs cover TypeScript frameworks, Rust, C# with Unity, and C++ with Unreal. The README says state stays in memory while a disk commit log supplies durability and crash recovery. Clockwork Labs also says BitCraft Online runs its backend as one SpacetimeDB module. That is a useful account of intended scale, though it is the vendor's workload rather than an independent benchmark.

The 3-command quick start depends on Maincloud

The Maincloud quick start publishes 1 module from a watched template. Install the spacetime CLI, log in through a browser with GitHub, and run spacetime dev --template chat-react-ts. That command creates a project, publishes it to Maincloud, watches files, and republishes changes. A developer can therefore learn tables, reducers, and subscriptions without first configuring a separate database, web server, and message bus. The convenience is tied to Clockwork Labs' hosted service and pricing.

Local evaluation has a separate 1-command Docker path on port 3000. Developers who need unreleased code can build standalone binaries with a Rust toolchain and the wasm32-unknown-unknown target. Those are different experiences: the CLI tutorial tests the product model, while a source checkout exposes a large Rust and pnpm monorepo. Our checkout held 6,887 files and roughly 702,424 source lines before dependencies, so contributing is a much larger job than running the chat template.

What happened when we ran it

Our sandbox installed 2,801 pnpm packages in 63 seconds and used 1,602 MB on disk. The build failed with exit code 1 after 6 seconds. Its final lines came from the docs workspace: Docusaurus reported Node.js 18.20.8 and required Node.js 20 or newer. The sandbox image was lab-node:22; the log does not explain why that workspace saw the older runtime, so we cannot assign a cause beyond the version mismatch it printed.

Tests also ended with exit code 1, after 15 seconds. Vitest passed 280 tests and failed 9 of 289 across 29 files. All 6 tests in index_prefix_filter.test.ts failed, as did all 3 in ctx_as.test.ts; 27 test files passed and 2 failed. The log summary does not establish a cause for those assertions. Our measurement setup was a fresh 3-CPU, 8 GB Debian container, where commit cfa9636 did not complete either repository-wide command cleanly.

The BSL grant permits one production instance

SpacetimeDB 2.8.3 is source-available under Business Source License 1.1, which its license text explicitly says is not an open-source license. The additional grant permits production use with no more than 1 SpacetimeDB instance and excludes using it for a database service. This is workable for some products, but it rules out common high-availability layouts under the standard grant. A company planning replicas, several production environments, or a hosted database product should settle the licensing route before architecture work.

The current version changes to AGPL v3.0 with a linking exception on August 18, 2031, or on the fourth anniversary of that version's first public distribution if earlier. The README says the linking exception does not force an application using SpacetimeDB to publish its own code. Each released version has its own license timing, so teams should read the license shipped with the exact build they deploy instead of relying on a future conversion date from another tag.

C++ and C# support still has platform edges

SpacetimeDB v2.8.3 still has 2 open platform issues that narrow its language list. Issue #5238 asks for a standalone C++ client because the documented path centers on Unreal, leaving proprietary engines and consoles without a clear example. Open issue #2414 reproduces a Blazor browser failure where the C# connection code tries to start a thread that the platform does not support. Neither issue means every C++ or C# client is broken. Both are reasons to build the real export target before choosing the backend.

Release v2.8.3 arrived on August 25, 2026, and fixed scheduled functions drifting later by anchoring each run to its intended execution time. GitHub recorded another push on August 26 and listed 844 combined issues and pull requests. New issues on August 26 included automatically detected CI flakes, which shows active test monitoring as well as continuing churn. With 17 CI workflow files, Docker support, and Compose present, this is maintained software, but the 9 failures in our own run still belong in the adoption decision.

It suits a prototype before it earns the whole backend

SpacetimeDB 2.8.3 has a coherent answer to a hard problem: keep authoritative state, transactions, server rules, and client updates in one runtime. That can save real engineering time when synchronization is central to the product. It also concentrates risk. A migration away would involve data, server functions, subscriptions, identity, and generated bindings rather than replacing one storage adapter.

A production-shaped prototype should use the intended client platform, exercise reconnects and authorization, and rehearse recovery with realistic state. It should also test the deployment permitted by the license, not an imagined multi-instance layout. Our 63-second install proves the repository is obtainable; the failed build and 9 failed tests show that a clean checkout was not cleanly releasable in our sandbox. For teams comfortable with those boundaries, the programming model is distinctive enough to justify that trial.

Alternatives

ProjectWhat it isPick it when
Supabase gh↗A Postgres platform with authentication, storage, functions, and real-time APIs.pick this instead when Postgres compatibility and a conventional application architecture matter more than database-hosted business logic.
ElectricA sync platform that delivers selected Postgres changes to local applications.pick this instead when an existing Postgres database should remain authoritative and clients mainly need synchronized reads.
ConvexAn open-source reactive database with TypeScript functions and live queries.pick this instead when a TypeScript-first reactive backend fits and SpacetimeDB's systems-language support is unnecessary.

What people are saying

  1. [hackernews] SpacetimeDB: A Short Technical Review
  2. [github-trending] clockworklabs/SpacetimeDB

Sources

  1. SpacetimeDB README
  2. SpacetimeDB repository facts
  3. SpacetimeDB 2.8.3 license
  4. SpacetimeDB v2.8.3 release
  5. Standalone C++ client request #5238
  6. C# Blazor browser support issue #2414

More data reviews

turso · TrackersListCollection · dash · getcontact-cli · awesome-zhuiju-free · iggy · the whole board →