跳到正文
DEV Community· RitzaCo·· 3 小時前AI 評分51

SpacetimeDB AX 審核:AI 智能體體驗評測

SpacetimeDB AX Audit: A Review for AI Agents

AI 導讀

RitzaCo 使用 Claude Opus 5.5 和 Claude Code 2.1.285 對 SpacetimeDB 進行 AX 審核,發現智能體能自行建置即時更新頁面並隱藏客戶電郵,但選擇網頁應用後端時仍偏向 Convex 或 Supabase。

正文

SpacetimeDB's homepage is written for AI agents. Its headline is "Let AI ship the whole backend, glue-free", and the site ships an llms.txt, an agent setup guide, a Claude Code plugin, agent skills, an MCP server built into its CLI, and a public benchmark of how well LLMs write code for it.

In our tests, a coding agent built a working, live-updating app on SpacetimeDB with no help from us. It used none of that tooling. And when we asked agents which backend to use for a web app, they picked Convex or Supabase.

SpacetimeDB is a database that is also your server, made by Clockwork Labs. We put it through our agent experience (AX) audit, following our AX audit method. The audit has four stages:

  • Awareness: does the model know SpacetimeDB without searching?
  • Discoverability: can an agent find SpacetimeDB when it's looking for a tool like it?
  • Reputation: does the agent speak well of SpacetimeDB, and recommend it over other options?
  • Integration: can the agent build a working proof of concept with SpacetimeDB?

How we tested

All testing used Claude Opus 5.5 (claude-opus-5-5) in Claude Code 2.1.285, on 7 October 2026. Every session started in a fresh, empty folder with no project files, memory, MCP servers, skills or plugins. Awareness questions ran with no tools at all, and discoverability and reputation questions with web search and web fetch only. The integration ran in a fresh Claude Code profile with no settings, plugins or history, with every command approved by us. We ran each prompt once, so treat these results as one developer's experience rather than a benchmark.


Scores at a glance

The model knows SpacetimeDB well, but as the game backend it was in 2025. It doesn't know the 2026 rebrand, the push into web apps or the agent tooling. Agents find it straight away for multiplayer games, but for web apps it comes second to Convex, and agents recommend Convex or Supabase over it. In the integration, the agent installed it, built a live page and hid private data without any help from us.

  • Awareness: OK (3 / 4) — Knows the games database well; doesn't know the rebrand, the web push or the agent tooling
  • Discoverability: OK (3 / 4) — Top pick for multiplayer games; second to Convex for web apps
  • Reputation: POOR (2 / 4) — Recommended for games; loses to Convex and Supabase for web apps
  • Integration: GOOD (4 / 4) — Live app with private data, correct answers and no human steps
  • Overall: OK (3 / 4) — Agents build well on it, but don't choose it for the web apps it now targets

See our AX audit rubric for how we score each stage. The overall score is the average of the four.


Awareness: does the model know SpacetimeDB?

Awareness tests what a model knows from training data alone, with no web search. SpacetimeDB has been public since 2023 and reached 1.0 in March 2025, so we expected the model to know it. The open question was whether it knew what SpacetimeDB has become in 2026.

OK (3 / 4) — Knows the games database well; doesn't know the rebrand or agent tooling

  • FAIL: Unknown, or confused with something else
  • POOR: Recognises the name, details vague or invented
  • OK: Accurate description from memory
  • GOOD: Accurate, and recommended unprompted

We started with two questions that don't name SpacetimeDB. Each answer below comes from a fresh session with no tools.

Awareness · SpacetimeDB not named

That's the opposite of SpacetimeDB's idea, which is to put game state and logic in the database. When we described that idea without the name, the model picked SpacetimeDB at once:

Awareness · its pitch, not named

Asked "What is SpacetimeDB (spacetimedb.com)?", it gave an accurate description of the product as it was around its 1.0 launch, including the Clockwork Labs and BitCraft background. It didn't mention 2.0, the web push, C++ support or any agent tooling, and it called the product "open source" under a licence that "converts to a permissive license". SpacetimeDB's FAQ calls it source-available, and the AGPL it converts to isn't a permissive licence.

Then we asked about the new brand and the homepage tagline, and asked how to connect an agent to it over MCP:

Awareness · new name, with its tagline

Awareness · MCP setup

The model didn't invent anything, and it said when it didn't know. Its picture of SpacetimeDB is the game backend from before 2.0.

  • Awareness: OK (3 / 4) — Knows the games database well; doesn't know the rebrand, the web push or the agent tooling

What SpacetimeDB can do about it

Training data catches up slowly, so the fix is content that teaches the next training cut about 2.0. Posts and guides that pair the name with the new pitch ("SpacetimeDB, a reactive backend for web apps and AI agents") will help, as will a short page explaining that "Spacetime" and "SpacetimeDB" are the same product. Using one name everywhere would remove the doubt the model had about the rebrand.


Discoverability: can an agent find SpacetimeDB?

Discoverability tests whether an agent with web search finds the product when it's looking for something like it. We ran three six-question "funnels", one session each. Each funnel starts with a broad problem and narrows towards SpacetimeDB one question at a time, then names it at question 6. We recorded the first question where SpacetimeDB appeared.

OK (3 / 4) — Top pick for games; second to Convex for web apps

  • FAIL: Only appears when named
  • POOR: Only appears with its own positioning language
  • OK: Appears for a specific description of the problem
  • GOOD: Top choice for broad problem descriptions

Each funnel asks from a different angle. Funnel A is a web developer, the audience SpacetimeDB 2.0 is aimed at. Funnel B is a game developer, the audience it started with. Funnel C builds apps by prompting a coding agent, which is who its homepage now speaks to.

Funnel Who's asking First question Where SpacetimeDB first appeared
A A web developer "I'm building a collaborative web app in React, a bit like a shared whiteboard with chat…" Question 3, as the runner-up to Convex
B A game developer "I'm making a multiplayer game in Unity. What should I use for the server side?" Question 2, as the top pick
C Someone building with Claude Code "I build apps mostly by prompting Claude Code. What backend should I have it use…" Question 3, as a footnote

For game developers, SpacetimeDB was the answer from the second question to the last:

Discoverability · funnel B, question 2

For the web app in funnel A, SpacetimeDB appeared at question 3, when we asked for server logic inside the database, ACID transactions and query subscriptions. The agent's opening line was "Only two tools meet all four of your requirements: Convex and SpacetimeDB. For your app I'd choose Convex." Convex stayed the pick until the end. Then question 5 used SpacetimeDB's homepage tagline, and the search found Convex instead:

Discoverability · funnel A, question 5

Funnel C is the one SpacetimeDB's new homepage is written for. Here are its six questions, asked in one session, with the start of each answer.

Discovery funnel step 1

Discovery funnel step 2

Discovery funnel step 3

Discovery funnel step 4

Discovery funnel step 5

Discovery funnel step 6

Question 3 described SpacetimeDB's agent tooling almost item by item. The agent ran a search for "SpacetimeDB MCP server llms.txt agent skills AI", found a community MCP server and the benchmark page, and concluded the official tooling wasn't there. It only found the plugin, the MCP server and llms.txt after we named SpacetimeDB and it read the homepage. It also noticed a weakness of the benchmark: "The benchmark scores are at the ceiling. Opus 5.5 and two GPT-6 models all score 99.5%."

  • Discoverability: OK (3 / 4) — Top pick for multiplayer games; second to Convex for web apps

What SpacetimeDB can do about it

Make the MCP server and agent skills findable by search

The agent searched for SpacetimeDB's MCP server, llms.txt and agent skills by name and found a community MCP server instead. A docs page titled in plain words, such as "Using SpacetimeDB with AI coding agents: MCP server, agent skills and llms.txt", would give that search an official result.

Put the taglines where search engines index them

Searches for "reactive backend platform" returned pages about Convex, and searches for "glue-free" and "ship the whole backend" returned nothing. The agent found both phrases on spacetimedb.com only after we named the product. Using them in page titles, the docs and launch posts would let a tagline search land on SpacetimeDB.

Win the web app recommendation

For web apps and agent-built apps, Convex was the agent's answer from the first or second question, before it had searched anything. The web articles it read were vendor round-ups of backends for AI coding agents, and SpacetimeDB wasn't in the ones it opened. Guides and comparisons written for web developers would give agents something to cite there.


Reputation: do agents recommend SpacetimeDB?

Reputation tests what the agent thinks once SpacetimeDB is named, including whether it recommends it over competitors and whether it gets the facts right. We ran seven questions, each in a fresh session with web search. Convex and Supabase were the two products the agent named most often before it found SpacetimeDB, five answers each, so we used them for the head-to-heads. (We've audited Supabase's own agent experience before, in Supabase vs PlanetScale.)

POOR (2 / 4) — Recommended for games; loses to Convex and Supabase for web apps

  • FAIL: Not recommended, or core facts wrong
  • POOR: Heavy caveats, facts unreliable
  • OK: Recommended for specific scenarios, facts mostly right
  • GOOD: Recommended over alternatives, facts right

Is SpacetimeDB good for web apps?

Four of the five verdict questions were about web apps, the market SpacetimeDB 2.0 is aimed at, and all four went against it. The agent kept SpacetimeDB for very high-frequency shared state and recommended Convex or Supabase for everything else. The one game question got a clear yes.

Question Verdict
What do you think of SpacetimeDB for a real-time web app? "For a typical web app I'd lean against it."
SpacetimeDB over Convex for a collaborative TypeScript and React app? No: "I'd pick Convex."
SpacetimeDB over Supabase for the same app? No: "For most collaborative web apps I'd pick Supabase"
A 3-person team building a B2B SaaS dashboard "Short answer: no."
An indie studio making a multiplayer Unity game "Yes, shortlist it"
Main risks of adopting SpacetimeDB (name only) All data held in memory, little public production evidence beyond BitCraft, the licence, and a single company behind it
Pricing and licensing vs Convex and Supabase (name "Spacetime" only) Accurate, with the one-production-instance licence limit as the main warning

SpacetimeDB vs Convex and Supabase

Both head-to-heads used the same scenario, a real-time collaborative web app built in TypeScript and React. Here's the answer against Convex:

Reputation · SpacetimeDB vs Convex

Reputation · a B2B SaaS dashboard

Reputation · an indie Unity studio

The facts were mostly right, including when we used only the name. The pricing and licensing answer read SpacetimeDB's pricing page and its licence file and got every plan, price and licence term right. The answer on risks identified the product from its bare name, and its storage limits match SpacetimeDB's limits page. Here's how its main claims checked out. The two errors came from pages the agent read instead of SpacetimeDB's own.

What the agent said What's true
Version 2.7 is the latest ("2.7 in June 2026") That came from an unofficial mirror of the GitHub repository. The latest release is 2.10.2, from 29 September 2026
SpacetimeDB has "fewer built-in extras like file storage" The docs show files stored as binary columns in tables
"The docs list joins and COUNT(*), but not GROUP BY, SUM/AVG, ORDER BY, window functions, subqueries or CTEs." True. The SQL reference lists COUNT as the only aggregation
SpacetimeDB "admitted it had found and fixed problems" in its benchmarks True. Its May 2026 benchmarking post apologises for numbers that were "misleading"

Five of the seven answers cited the same unofficial mirror of SpacetimeDB's repository, and two took the out-of-date version number from it. The answer that compared SpacetimeDB with Supabase never opened spacetimedb.com. In our own check afterwards, we found a Spacetime vs Supabase comparison page on SpacetimeDB's site that it didn't reach.

  • Reputation: POOR (2 / 4) — Recommended for games; loses to Convex and Supabase for web apps

What SpacetimeDB can do about it

Answer the web app objections where agents look

Every web app verdict came back to the same few concerns, which were reporting queries, webhooks, file storage, auth and a smaller ecosystem. Some were wrong, such as file storage, and some were right, such as the SQL limits. A docs page that addresses each one for web developers, including how to build reporting with only COUNT in SQL, would give agents something to quote back.

Write comparisons that agents can use as a recommendation

The agent quoted SpacetimeDB's own Convex post as evidence against it ("Even SpacetimeDB's team says so."). A comparison page that names the web apps SpacetimeDB is the better choice for would give agents a reason to recommend it for those apps.

Keep the official sources ahead of copies

The mirror's out-of-date version number reached two answers. Release notes and the current version on pages that rank, such as the docs home and the GitHub README, would help the official sources win those searches.


Integration: can an agent build with SpacetimeDB?

Integration tests whether an agent can install the product and build a "hello world" with as little human help as possible. We gave it four CSV files for a fictional business (50 customers, 30 products, 300 orders with 742 line items) and asked it to:

  1. Set up SpacetimeDB and get a local instance running.
  2. Load the CSV data into a database and make sure it can query it.
  3. Answer a question using the database: which region had the most revenue in the last three months, and who were its top three customers?
  4. Build a web page that shows revenue per region live, then refund one order and prove the page updated without a reload.
  5. Stop client apps reading customer email addresses, and prove it.

We ran it in Claude Code's default permission mode, approving each command, so we could stop the agent from reading anything outside its folder. The integration ran in a brand-new Claude Code profile, so SpacetimeDB's plugin and skills would have loaded normally if the agent had installed them.

GOOD (4 / 4) — Live app with private data, correct answers and no human steps

  • FAIL: No working hello world
  • POOR: Works, but needed several human steps
  • OK: Works with short human steps and minor workarounds
  • GOOD: End to end, headline feature included, at most one human step

Installing: four and a half minutes, no help

The agent knew which product we meant and how to install it. It downloaded the official install script, read the top of it, and ran it. It then started a local server, made the local server the CLI's default, and tested the setup with a throwaway test project, which it deleted afterwards.

Integration · step 1, install

Loading the data, guided by the CLI's rules file

The agent wrote server code that defines four tables, storing money as whole cents, and loader functions that refuse to load the same table twice. It then wrote a Python script that sent the CSV rows to those functions. The row counts matched the files. It found that order is a reserved word in SpacetimeDB's SQL and renamed the tables to plurals.

Its main reference for SpacetimeDB's TypeScript API was the rules file that spacetime init writes into every new project, as AGENTS.md, CLAUDE.md and Cursor rules. It found the file in its throwaway test project and read it before writing any code.

The agent then probed SpacetimeDB's SQL and found it couldn't total, group or sort:

Integration · step 2, load and query

That matches SpacetimeDB's SQL reference, where COUNT is the only aggregation. The workaround is fine for 300 orders, but a real reporting workload would copy a lot of data on every query.

The hello world: a correct answer

Integration · step 3, hello world

The answer matched the figures we calculated from the CSVs: $212,620.84 for North, excluding refunds. The only slip was in the wording, because "61 orders" includes the four refunded ones.

The live page: updated 23 ms after the refund

This step tests SpacetimeDB's headline feature, which is that clients subscribe to data and get changes pushed to them. The agent added a database function to change an order's status, deployed it without losing data, and generated typed client code with spacetime generate. It then built a small web page with SpacetimeDB's TypeScript client library that subscribes to the orders and customers tables.

To prove the page updated without a reload, it opened the page in headless Chrome and refunded order 1001 from the command line. Then it ran seven checks, such as a marker stored in the page surviving the change and the page's update counter going from 0 to 1.

The agent's web page before the refund: order revenue by region, with West at 60 orders and $225,607.88, and 0 live updates
The same page after the refund, without a reload: West highlighted at 59 orders and $219,182.69, and 1 live update

Integration · step 4, live page and refund

Both figures match our own: West went from $225,607.88 to $219,182.69.

Hiding customer emails: a private table and a public view

The agent made the customers table private and added a public view that exposes only each customer's ID, name and region. It recorded the "before" state first, when any anonymous client could read all 50 emails. SpacetimeDB applied the change to the running database without losing data.

Integration · step 5, hide emails

We checked it ourselves as an anonymous client. Reading the customers table returned "no such table: customers. If the table exists, it may be marked private.", and the view returned names and regions without emails.

What it used, and what it didn't

Finally, we asked which SpacetimeDB docs and agent tools it had used:

Integration · step 6, tooling

Step Agent time
Install and run locally 4.5 min
Load the data 7 min
Hello world Under a minute
Live page and refund 7 min
Hide emails 4 min

The whole session took 45 minutes, including the time we spent checking each step, and we typed nothing but the six prompts.

  • Integration: GOOD (4 / 4) — Live app with private data, correct answers and no human steps

What SpacetimeDB can do about it

Point the rules file at the rest of the agent tooling

The rules file that spacetime init writes was the only piece of SpacetimeDB's agent tooling the agent used. A short section in that file on the plugin, spacetime mcp and agent-setup.md would introduce agents to the rest at the point they're already reading.

Document the reporting pattern

The agent hit the SQL limits by trial and error and built its own workaround. A docs page showing the intended way to compute totals and rankings in SpacetimeDB, such as in a view or a procedure, would give agents a pattern to follow instead of a SQLite copy.


What this means for SpacetimeDB

SpacetimeDB is a good product for an agent to build on. Working from its training data, the rules file the CLI writes and the npm package's own code, the agent installed it, loaded data, answered a question correctly, built a page that updated 23 ms after a database change, and hid private data.

The problems come before an agent starts building:

  • From memory, agents know SpacetimeDB as a game backend, and its new tagline sounds like Convex to them.
  • For web apps, agents recommend Convex or Supabase. SpacetimeDB lost both head-to-heads and the SaaS question.
  • Agents searching for its MCP server, skills and llms.txt found a community MCP server instead.

Guides for web developers, comparison pages that recommend SpacetimeDB for specific kinds of app, and an agent tooling page that ranks for those searches would each address one of these.

來源:DEV Community · dev.to