Disc

End of line
for legacy databases.

From schema to query to server — one language,
one stack, zero ORM.

Take a closer look.

  • Schema displayed in a text editor

    Schema. Declare your types once in SDL and Disc takes it from there — validating links, resolving constraints, and turning intent into structure. Your schema is the source of truth, not an afterthought.

  • EdgeQL query and its results in Disc's admin interface

    Query. Write EdgeQL1 that mirrors the shape of your result. Select a user, pull their posts, nest a third level deep — and get back precisely that, typed end to end.

  • The Postgres elephant backlit by rays of sunlight against a daytime sky

    Storage. PostgreSQL 18 and up does the heavy lifting underneath, exactly as it always has. Battle‑tested storage, none of the setup.

  • Disc source code displayed in a text editor

    Runtime. Built on Deno, with first‑class TypeScript, a real permissions model, and a modern standard library. Native by design, not by adapter.

  • The Live Schema Diff component of Disc's admin interface watching for changes

    Migrations. Disc diffs your schema against history and writes the DDL for you. Evolve your model with confidence and a paper trail.

  • The Data screen of Disc's admin interface

    Admin UI. A SvelteKit console served right alongside your server. Browse, edit, query, and watch your schema evolve.

Schema‑first.
Second to none.

Most databases make the schema something you wrestle into place after the fact.

Disc puts it first. You write declarative SDL — types, links, properties, constraints — and that single description drives your tables, your migrations, and your generated types.

Define it once. Trust it everywhere.

dbschema/default.disc
Gel2‑compatible SDL
Links, properties, and constraints
Validated before a single table is built
type Merchant extending BaseRecord { allowedOrigins -> array; multi apiKeys -> api::ApiKey; autoSettle -> int64 { constraint one_of (0, 1); # 0 === false default := 1; }; customBranding -> json; required email -> str { constraint exclusive; }; metadata -> json; onboardingCompleted -> int64 { constraint one_of (0, 1); # 0 === false default := 0; }; required organizationName -> str; multi paymentRequirements -> payment::PaymentRequirements; payoutAddresses -> PayoutAddresses; multi payouts -> settlement::Payout; settlementDelaySeconds -> int64 { default := 0; }; status -> MerchantStatus { default := MerchantStatus.PENDING; }; tier -> MerchantTier { default := MerchantTier.STARTER; }; multi transactions -> payment::Transaction; multi webhookEndpoints -> webhook::WebhookEndpoint; webhookRetries -> int64 { default := 3; }; # index on ((.created, .status, .tier)); }

Query the light fantastic.

EdgeQL1 is the best part of the original, and Disc keeps it intact. Ask for the shape you want and get the shape you want — objects, nested links, and all — compiled straight to PostgreSQL underneath.

No ORM to fight. No mapping layer to maintain. No N+1 surprises
waiting in the dark.

   1   select Merchant {
   2     autoSettle,
   3     email,
   4     organizationName,
   5     transactions: {
   6       amount,
   7       currency,
   8       status
   9     }
  10   } filter .email = "user@example.com";
email............. user@example.com
autoSettle........ 1
transactions...... [{...},{...},{...}]
organizationName.. Acme Corp

One query. One round trip. The exact shape you described.

Batteries included.
Postgres included.

Disc ships with PostgreSQL and manages its entire life for you. The right binary for your platform downloads on first run, initializes into a private instance, and starts on demand. Socket‑only by default, so there’s no port to expose and no conflict to chase.

You get the world’s most trusted storage engine
without ever becoming its administrator.

Deno‑native.
By design.

Disc is built on Deno from the ground up — not ported, not wrapped. That means built‑in TypeScript, a real permissions model, and a modern standard library doing the work, with a single‑language stack
from schema to server.

One runtime. One language. No glue.

❤️

Diff happens.

Change your schema and Disc handles the rest. It reads where you are, reads where you’re going, and writes the DDL to get there — tracked, ordered, and replayable.

Migrate without the migraine.

See your data in
a new light.

Disc’s admin console is built to look the part — a modern, built-in interface where everything about your data comes into view. Browse your schema, edit rows inline, compose EdgeQL1 with autocomplete, and trace a query’s execution plan.

It’s your data’s identity disc, made visible.

Disc admin interface showcasing the Schema page

Great power comes
with great clarity.

Your schema is the contract, your types enforce it, and your queries
return exactly what they promise.

Disc is built so the database tells you the truth — at compile time, not in production. Aware of your data’s shape, so you never have to guess at it.

Install Disc | Visit documentation