Skip to content

Start Here ​

kick/db is KickJS's database layer: you write the schema in TypeScript, and it derives the migrations and the query types from it. Where you begin depends on what you already have.

A new project ​

Pick the database you'll run in production, and follow its page from install to the first query:

  • SQLite — nothing to provision, so it's the quickest way to try kick/db. Good for small apps, embedded use and tests.
  • PostgreSQL — the most complete dialect. Choose it unless you have a reason not to.
  • MySQL / MariaDB — when your infrastructure already runs MySQL.

The schema, migrations and queries read the same on all three; the pages differ in connection setup and a few day-one details. Drivers compares them.

An existing database ​

Adopting kick/db on an existing database introspects the live schema into a schema.ts, baselines the migration history so nothing re-runs, and checks that the two really match — so you can move over while your current code keeps running.

Coming from another ORM ​

Each guide maps that ORM's concepts onto kick/db, shows common tasks side by side, and says plainly what kick/db doesn't have yet:

Learning by building ​

Taskboard builds one app in five parts — modules, a database, authentication, permissions, file uploads, a production deploy — so you see the patterns in place rather than one at a time.

Then ​

Released under the MIT License. Built with TypeScript — runs on Express, Fastify, or h3.