| Feature | Spacetime | Supabase |
|---|---|---|
| ACID relational tables | ✓ | ✓ |
| Client SDKs for TS/JS | ✓ | ✓ |
| Built-in authentication | ✓ | ✓ |
| Self-host or managed cloud | ✓ | ✓ |
| Supports Postgres Wire Format | ✓ | ✓ |
| Realtime built into the engine | ✓ | ✗ |
| Application logic inside the database | ✓ | ✗ |
| Deterministic reducers with atomic writes | ✓ | ✗ |
| Auto-updating subscription queries | ✓ | ✗ |
Supabase in context
Supabase is an open-source alternative to Firebase built on Postgres. It combines Postgres with APIs for authentication, storage, functions, and realtime. Developers get a familiar SQL database with serverless hosting and additional services included.
Similarities
Spacetime and Supabase both:
- Provide ACID-compliant transactional storage
- Offer client SDKs for TypeScript and JavaScript
- Include built-in authentication and identity management
- Support self-hosting as well as managed cloud deployments
- Support the Postgres wire protocol
Beyond these features, the two platforms diverge in key areas such as realtime updates, data consistency, and performance at scale.
Differences
Realtime
Spacetime has realtime data synchronization built into the database engine. Although Spacetime is a general purpose database, it was originally created as a sync engine for the real-time MMORPG, BitCraft Online. As such, it is capable of hitting the ultra low-latency performance requirements of games and real-time apps like chat or collaborative editing tools. Additionally, Spacetime executes server-side logic in the same process as the database itself, allowing you to do real-time physics calculations inside the engine. Clients use subscriptions, and the engine streams changes into client caches automatically, so dashboards, chats, or games update instantly without custom sync code.
Supabase streams database changes using Postgres logical replication (WAL), which feeds a Phoenix/Elixir server that broadcasts events over WebSockets. Developers query data over REST or GraphQL, then add listeners and manage channels in client code to keep state reactive. Supabase's real-time performance benchmarks show that latencies are suitable for semi-realtime apps like chat, but can reach into the hundreds of milliseconds in certain scenarios, making it unsuitable for real-time gaming applications.
Data consistency
Spacetime processes writes through deterministic "reducer" functions which are written the programming language of your choosing. They execute inside the database process in atomic transactions, so either all changes commit or none do, and every client sees the same ordered state transitions.
Supabase relies on Postgres transactions for integrity. Most application logic runs in Edge Functions or APIs outside Postgres, which can create mismatches between logic and state.
Schema management
Spacetime takes a strictly code-first approach to schemas, by defining schemas in Rust, TypeScript, or C# modules, keeping data models, reducers, and clients in sync as applications evolve. This also allows Spacetime to code-generate types in your favorite client language in order to interact with your database data.
Supabase manages schemas through SQL migrations. Interacting with the database from code requires using an ORM and ensuring the ORM stays in sync with the database schema. This approach is flexible and familiar but requires coordination across services and clients.
Application logic
Spacetime keeps application logic inside the database engine with reducers, so it executes next to the data for lower latency and consistent results. Spacetime reducers are functionally equivalent to the server code that you would normally write in a server application layer like NodeJS. Embedding them inside the database dramatically improves performance and user experience, while keeping the same familiar security model.
Supabase executes logic in Edge Functions or external processes which you need to deploy and maintain, which adds network hops and increases the risk of mismatches between logic and state.
Query model
Spacetime queries are expressed as subscriptions. Clients declare the data they need, and the engine streams updates automatically, keeping local caches current. Spacetime also supports the Postgres wire protocol, allowing you to connect a standard Postgres client like psql to your database and perform basic operations.
Supabase is built on top of Postgres and while it supports the full Postgres feature set, queries are SQL-based and exposed over REST or GraphQL. They return static results by default, and developers must add realtime listeners to make client state reactive.
Performance and scaling
Spacetime keeps application state in memory with durability backed by write-ahead logging. Logic runs inside the database, meaning that your application code has extremely low-latency, high throughput access to your database data, allowing you to do 10s or 100s of thousands of transactions per second on the same row of data, and then mirror that data to client caches with predictable low latency even at scale.
Supabase routes requests through APIs or Edge Functions before reaching Postgres. Each additional layer adds overhead, and developers are responsible for performance tuning.
Pricing
Spacetime has a Free Forever self-hosted option so teams can run projects on their own infrastructure without platform fees. It also offers a managed cloud service with granular usage-based pricing, allowing you to optimize your apps for performance and price, and enterprise support.
Supabase has a free plan with limits on database, storage, and MAUs. Paid tiers add usage-based charges, and enterprise options include SSO, compliance, and extended retention.

