A database foryour $5 VPS.

SQLite, with types that mean something.
For TypeScript, Rust, Go and the command line.

Experimental MIT licensed

CREATE TABLE invoices (
  id INT64 PRIMARY KEY,
  amount DECIMAL(12,2),
  issued_at INSTANT
);

SELECT CAST('0.1' AS DECIMAL)
     + CAST('0.2' AS DECIMAL);
0.1 + 0.20.3

Example result · exact decimal arithmetic

npm install @boxdb/client

Exact by design.

Decimals, instants, UUIDs and more. Validate the meaning of your data, right where it lives.

Explore the types

One file. Two ways.

Binary SQLite for your application. Readable YAML for small datasets you want to keep in Git.

Choose your storage

Fits your stack.

One Rust core, four ways in. The same types, migrations and files across every client.

Find your integration

Your first query, in TypeScript.

Full TypeScript guide

Node.js 22.18+ or Bun · macOS ARM64 or Linux x64/ARM64 with glibc 2.35+

app.ts
import { BoxDB } from "@boxdb/client";

const db = await BoxDB.open("app.db");
try {
  await db.exec("CREATE TABLE IF NOT EXISTS notes(body TEXT NOT NULL)");
  await db.query`INSERT INTO notes(body) VALUES(${"Hello, BoxDB."})`;
  console.log(await db.query`SELECT body FROM notes`);
} finally {
  await db.close();
}

SQL, with a little
more meaning.

Declare what belongs in a column. BoxDB checks it. Exact decimal and temporal arithmetic runs in the engine.

SQL and types
DECIMAL(12,2)Exact amounts. Explicit rounding.
INSTANTA point in time, normalized to UTC.
ENUM('todo','done')A known set of string values.
UUIDIdentifiers with native validation.
TEXT[]Collections with typed elements.

Bring the tools
you already use.

Keep your application patterns. BoxDB adapters connect the client to your existing libraries.

Small server.
Real database tools.

SQL migrations, schema export, file diagnostics and recovery. Built-in full-text and vector search. Binary replication with Litestream.

Deployment and backups

Built in the open. Still experimental.

BoxDB is version 0. APIs and storage contracts can change. Native values and indexes require BoxDB’s patched SQLite engine. Read the tradeoffs before you adopt it.

Is BoxDB a fit?

Start with one file.

Create your first database