Type-safe query builders for TypeScript. Instead of writing raw SQL strings, you call typed methods — your editor autocompletes columns and the compiler catches mistakes before they hit the database.
Pick a model, choose fields, add a filter — and watch a real-looking Prisma or Drizzle query assemble itself, then return typed results from a seeded dataset. This is exactly the shape of code these tools generate.
Because the schema is described in TypeScript, your editor knows every column and its type. Type a dot and it suggests valid fields — misspell one and it won't compile. No more guessing column names from memory.
Switching user for order in Demo 1 changes the available fields — the builder only ever offers columns that actually exist, just like real autocomplete.
Both give you type safety; they differ in style. Prisma uses its own schema file and a generated client (higher-level, batteries-included). Drizzle stays close to SQL with a thin, SQL-like builder (lighter, more explicit).
schema.prisma fileA raw SQL string is opaque to the compiler — a typo in a column name only fails at runtime, in production. A typed query builder turns that into a red squiggle in your editor, today.
// ❌ Raw string — typo found only when it runs db.query("SELECT nmae FROM users") // 💥 at runtime // ✓ Typed — compiler stops you immediately db.select({ name: users.nmae }) // 🔴 Property 'nmae' does not exist