# Roadmap

> What better-supabase is building now, next and later, with the upstream source each item follows and the subpath it lands in.

Source: https://bettersupabase.com/docs/roadmap

The roadmap groups work by horizon. Each item names the upstream project it
follows and the subpath where it lands, so you can tell which import changes
when it ships. Items move between horizons as upstream releases land; the
[changelog](https://github.com/ScaleDockHQ/better-supabase/blob/main/CHANGELOG.md)
records what shipped.

## Now [#now]

* **`audience` and `issuer` pinning** (`better-supabase/server`), passed to
  `verifyCredentials`. Upstream: `@supabase/server` 1.7.
* **A Standard Schema generator** (`better-supabase/config`): `standardSchema()`
  writes Row, Insert and Update validators per table with no validation
  library. Upstream: Standard Schema and Standard JSON Schema.
* **TanStack DB collections with Realtime sync**
  (`better-supabase/tanstack-db`), built on `@supabase-labs/tanstack-db` with
  the generated schemas and primary keys. Upstream: `supabase/tanstack-db`.
* **Typed Edge Function calls** (`better-supabase/edge` and
  `better-supabase/client`): `defineFunction()` checks the input and output
  with Standard Schemas, and `functions()` calls it through `functions-js`
  with a `Result`. Upstream: `@supabase/functions-js`.
* **Supabase MCP server interop** (`better-supabase/ai-sdk/mcp` and
  `better-supabase/mcp/sdk`): `supabaseMcp()` types the server's tools with
  `createToolSchemas()`, and `supabaseMcpHandler()` serves
  `createSupabaseMcpHandler` behind better-supabase auth. Upstream:
  `@supabase/mcp-server-supabase`.

## Next [#next]

Parity gaps with what Supabase ships today.

* **Supabase Lite** (`better-supabase/server`, `better-supabase/testing` and
  the CLI): the server, repositories, `gen`, `doctor` and `init` against a
  `@supabase/lite` project, and in-process lite stacks for tests. Upstream:
  `@supabase/lite`.
* **Compiled JSON Schemas** (the `jsonb-schemas` SQL module). CHECK
  constraints use `pg_jsonschema`'s compiled `jsonschema` type once the
  platform ships a version that has it; Supabase runs 0.3.3, which has
  `jsonschema_validation_errors` but no compiled type. Upstream:
  `supabase/pg_jsonschema`.

## Later [#later]

* **AsyncAPI 3 for realtime topics** (`better-supabase/realtime`): a document
  describing each `defineTopic` channel and its payloads. Upstream: AsyncAPI 3.
* **A machine-readable capability file** for better-supabase itself, in the
  shape of the `supabase/sdk` capability matrix. Upstream: `supabase/sdk`.
* **ElectricSQL and Zero collections**: executors and TanStack DB
  collections over their sync engines, after `better-supabase/expo-sqlite`
  and `better-supabase/tanstack-db` settle the executor interface.
  Upstream: `electric-sql/electric`, `rocicorp/mono`.

The [blocks overview](/docs/blocks) lists the blocks that ship today.