Solve · Solo builders
How do I add a database to a side project without setting up Postgres?
If your side project needs a database but you don't want to provision Postgres, choose an engine, or wire migrations, drop one `<nlq-data>` tag in any HTML page — nlqdb mints the database, infers the schema from your first English query, and exposes the same data via SDK / CLI / MCP.
Indie builders shipping a side project frequently bail at the database step: choosing Postgres vs SQLite, picking a hosting tier, wiring an ORM, writing the first migration. Most weekend ideas die between `npm create` and `CREATE TABLE`. The right shape for a side project is the one that fits inside an HTML file — but the existing tooling assumes you'll write SQL first.
Drop this in your HTML
The CRM-style table is the most common "my side project needs to remember things" shape — nlqdb mints it from one English goal with no schema authored by hand.
show recent customer contacts sorted by last touch <nlq-data goal="show recent customer contacts sorted by last touch"></nlq-data> What nlqdb actually does for this
- One HTML element on any page provisions a Postgres database on the first query; subsequent queries reuse it via a per-device anonymous identity (`SK-ANON-001`).
- Schema is inferred from the query intent — no `CREATE TABLE` written by hand; subsequent fields are added via English (`"add a status column"`).
- Adopt the anonymous database into your account with one click within 72 hours (`SK-ANON-002`); no data loss, no re-import.
What nlqdb doesn't do here
- Anonymous databases sweep after 72h unless adopted — designed for trial, not for storing the next year of your data without an account.
- No SQLite, no in-browser-only mode — the engine is always a real Postgres on Cloudflare-region infrastructure (Phase 2 adds ClickHouse).
Questions buyers ask
- Can I keep a database from a side project after the 72-hour anonymous window?
- Yes — sign in inside the 72h window and click "Adopt this database" (`SK-ANON-002`). The DB is re-keyed to your account, all rows persist, and the original anonymous device key keeps working until you rotate it.
- Does this work without a build step or a framework?
- Yes — `<nlq-data>` is a vanilla web component; drop the script tag, drop the element. It also ships as `@nlqdb/react`, `@nlqdb/vue`, `@nlqdb/svelte`, `@nlqdb/solid`, `@nlqdb/astro`, `@nlqdb/next`, and `@nlqdb/sveltekit` if you prefer the typed wrapper.
- What about hosting — do I need Cloudflare?
- No — the embedded element calls `app.nlqdb.com` from any origin (CORS-permissive on the public endpoints). Your side project can be on Vercel, Netlify, GitHub Pages, or a single static HTML file.
- How do I migrate later if the project takes off?
- The SDK's `runSql` (`POST /v1/run` raw-SQL escape hatch — `GLOBAL-015`) lets you stream out an arbitrary `SELECT` of your data for a parameterised migration. Phase 2 adds engine migration (Postgres → ClickHouse) without an app-side rewrite — the workload analyser proposes it; you approve.
Where this pain shows up in public
Enduring discussion hubs where you can verify the theme without taking our word for it. We don't quote individual posts; we cite search-result and subreddit URLs that stay live as new threads land.
Try nlqdb in 30 seconds
No sign-in. The anonymous database lasts 72 hours; adopt it with one click if you keep it.
Start with a goal →