Repo of the Day
drizzle-team/drizzle-orm
Published: Mar 10, 2023
Open repository ↗TypeScript ORM for SQL - Looks really good for TS work
Summary
Drizzle ORM is a TypeScript-first ORM that sits as a thin typed layer on top of SQL, supporting PostgreSQL, MySQL, and SQLite, including serverless databases such as Turso, Neon, and Cloudflare D1. It ships as a tree-shakeable package with zero runtime dependencies and is distributed under the Apache-2.0 license.
What it is useful for
Drizzle fits projects that want type-checked queries against raw SQL rather than a heavyweight ORM that hides query generation. According to the README, it supports PostgreSQL, MySQL, and SQLite, plus serverless offerings like Turso, Neon, Xata, PlanetScale, Cloudflare D1, FlyIO LiteFS, Vercel Postgres, Supabase, and AWS Data API. It targets Node.js, Bun, Deno, Cloudflare Workers, Supabase functions, Edge runtimes, and browsers, so the same data layer can run in server and edge environments without serverless adapters or extra data proxies.
The project also exposes both relational-style queries and SQL-like queries, which lets teams pick the query shape that matches their code rather than being locked into one style.
How engineers can use it
The GitHub README does not include install commands or a copy-pasteable quickstart; that material lives on the project documentation pages.
- Read the Documentation entry point for the database you plan to use (PostgreSQL, MySQL, or SQLite).
- Declare a SQL schema in TypeScript and build either relational or SQL-like queries, following the SQL schema declaration, relational query builder, and select guides.
- Use Drizzle Kit to generate or apply SQL migration files from the schema.
- Open Drizzle Studio when you need to browse or edit rows in the connected database.
Documented constraints worth knowing up front: the README frames Drizzle as a thin typed SQL layer ("no bells and whistles"), and the bulk of setup, driver configuration, and API reference lives on the documentation site rather than in this README, so onboarding requires reading those external pages.