New Indexed search, Query Advisor and data portability

Every database deserves a console.

Hosted SQLite with indexed full-text search, a SQL and table editor, verified backups, one-click forks, import and export, and a typed JavaScript client. Create a database and ship.

No credit card. Unlimited databases sharing 3 GB, every feature included.

$ npm install usesqlite
SQL editor

Autocomplete that knows your schema

Not a generic keyword list — the real table and column names from the database you have open, with syntax highlighting and the queries you saved last week.

query.sqlsaved · "top posts"
SELECT p.title, count(c.id) AS comments
FROM posts p
LEFT JOIN comments c ON c.post_id = p.id
idINTEGER · PK
publishedINTEGER
published_atTEXT
Backups

Restore into a new database

So you can rehearse recovery without touching production.

takensize
today 07:008.4 MB
2026-08-208.4 MB
2026-08-12 wk7.6 MB
Typed client

Types generated from the live schema

One command writes them; --check fails CI when they drift.

terminal
$ npx usesqlite typegen
Wrote ./database.types.ts — 6 tables.
app/posts/page.tsx
const db = createClient<Database>(url);

db.from('posts').eq('athor', 1);
//                   ^ no such column
Table editor

Edit a cell without writing an UPDATE

Sort, paginate, filter on several conditions at once, fix the typo in place.

idtitlepublished
1Shipping SQLite1
2Why WAL mode matters1
3Type-safe queries0
Forking

Copy prod into staging

A real, separate file with its own keys. Break it freely.

prod_analytics 8.4 MB
└─▶ staging_08_21
    copy · own keys
Query Advisor

Turn slow scans into indexed reads

See execution time and query history, inspect the plan, then apply a safe index recommendation in one click.

├── SCAN posts
└── SEARCH comments
    USING INDEX
Create index on posts(published, created_at).
Connect

Scoped keys

Read/write for your server, read-only for the browser. Revoke one without touching the rest.

rwcs_rw_a4f…9c2used 2m ago
rocs_ro_91b…7deused 1h ago
rocs_ro_44a…10fnever used
Or write the SQL

Tagged templates bind every value

User input is always a parameter — never a string concatenated into a statement.

actions.ts
await db.sql`INSERT INTO posts (title)
             VALUES (${title})`;

// Several statements, one transaction
await db.batch([
  { sql: 'UPDATE posts SET published = 1' },
  { sql: 'DELETE FROM drafts WHERE id = ?', params: [id] },
]);
await db.sql`INSERT INTO posts (title)
             VALUES (${title})`;

// Several statements, one transaction
await db.batch([
  { sql: 'UPDATE posts SET published = 1' },
  { sql: 'DELETE FROM drafts WHERE id = ?',
    params: [id] },
]);
React

Hooks in the same package

Rows, loading and error state, and writes that refresh the list when they succeed.

notes.tsx
const { rows, isLoading, insert } = useTable('notes', {
  order: { column: 'created_at', direction: 'desc' },
  limit: 20,
});
const { rows, isLoading, insert } =
  useTable('notes', {
    order: { column: 'created_at',
             direction: 'desc' },
    limit: 20,
  });
Full-text search

Find the right row without scanning a million

Create a managed FTS5 index from the table editor. Ranked matches, snippets and automatic synchronization keep search useful as rows change.

search posts3 ranked matches
rankmatching snippet
0.96The hidden kernel discovers…
0.91A luminous kernel balances…
0.87The distant kernel connects…
Import & export

Bring a database in. Take it back out.

Drag in a SQLite file, replay SQL or load CSV. Export a native SQLite copy, a portable SQL dump or a table CSV whenever you need it.

inmail-merge.sqlitewhole database
inposts.csvone table
outdatabase.sqlportable dump
FTS5Ranked, indexed search
75 / 90%Storage usage warnings
1 filePer database — fork it, download it
$53 GB included / month
How it works

From nothing to a typed query in about a minute.

No provisioning queue, no pooler to configure, no ORM to learn.

1

Create the database

Name it and it exists — a real SQLite file in WAL mode, ready for its first statement.

2

Paste the connection string

CLOUD_SQLITE_URL into .env.local, straight from the Connect tab.

3

Generate the types

npx usesqlite typegen and your editor knows every table you just made.

Pricing

Pay for the storage you use.

One plan includes the tools that keep your data searchable, portable and recoverable.

Free trial
7 days · no card
  • Unlimited databases sharing 3 GB
  • Editor, indexed search, Query Advisor, backups, forking, imports, exports and generated types
  • Don't subscribe and your data is held 7 more days — it comes back the moment you do
Start the trial
Paid
$5 / month
  • Unlimited databases
  • 3 GB total storage per account
  • Usage warnings before writes safely stop at the limit
  • Cancel any time; you keep the period you paid for
Create an account

Your next project deserves better than data.db in git.

Seven days, unlimited databases, no credit card. Create one and run a query inside a minute.