Disc Documentation

Disc is a schema-first, TypeScript-native database built on Deno. It sits on top of PostgreSQL and provides a declarative schema language (SDL), a purpose-built query language (EdgeQL), automatic migrations, and a bundled PostgreSQL instance that requires zero manual setup. Disc is a fork of Gel (formerly EdgeDB), reimplemented in TypeScript while preserving EdgeQL and SDL.


Quick Links

I want to… Go to
Get up and running from scratch Getting Started
Define types, links, and constraints Schema (SDL)
Write queries and mutations EdgeQL
Look up built-in functions Functions Reference
Use the CLI CLI Reference
Manage schema changes over time Migrations
Generate a typed client (TS/Rust/Go) Codegen
Use the TypeScript SDK in my app Client SDK
Write filter queries against schemas Filter API
Configure the Disc server Server Configuration
Set up authentication Auth
Add row-level security Access Policies
Use extensions Extensions
Browse data in a web UI Admin UI
Understand the bundled PostgreSQL Bundled PostgreSQL
Deploy to production Production Deployment
Deploy on Kubernetes with Helm Production Deployment → Kubernetes (Helm)
Send auth emails over SMTP Auth → Email Delivery (SMTP)
Drive Disc from a Deno script CLI → Programmatic API
Tune queries, indexes, and caches Performance
Run Disc via Docker Compose Docker Compose
Run and write tests Testing
Cut and publish a release Releasing

Key Concepts

Schema-first. Your data model is defined in .disc files using SDL (Schema Definition Language). Disc parses these definitions, generates migrations, creates PostgreSQL tables, and produces TypeScript types -- all from one source of truth.

EdgeQL. Disc uses EdgeQL, not SQL, as its primary query language. EdgeQL compiles to PostgreSQL SQL under the hood but provides a cleaner syntax for nested data, filtering, and type-safe queries. You never write raw SQL unless you want to.

Bundled PostgreSQL. Running disc init downloads and manages a PostgreSQL instance automatically. Users never install, configure, or maintain PostgreSQL directly. For production, an external PostgreSQL can be connected via --backend-dsn.

TypeScript-native. The entire stack -- schema parser, query compiler, migration engine, server, CLI, and SDK -- is written in TypeScript and runs on Deno. No Python, Rust, or Java dependencies at runtime. (Your application need not be TypeScript: disc codegen also emits Rust and Go clients that speak the same HTTP API.)


Full Table of Contents