In Fabi.ai
You're a data team exploring a warehouse in collaborative Python + SQL notebooks.
Comparison
Pick Fabi.ai if you're a data team that wants AI-assisted Python + SQL notebooks and scheduled dashboards over a warehouse you already run. Pick nlqdb if you're building a product or agent that needs English-to-SQL over a database it provisions — embeddable, API-first, every write diff-previewed.
The same goal, two ways.
> monthly revenue by plan tier for the last 12 months
In Fabi.ai
You're a data team exploring a warehouse in collaborative Python + SQL notebooks.
In your HTML
<nlq-data goal="monthly revenue by plan tier for the last 12 months"></nlq-data> A grouped, time-bucketed query nlqdb answers as SQL over the database your app owns — the live data layer your product queries, not a notebook an analyst schedules.
What's different
| Dimension | nlqdb | Fabi.ai | Note |
|---|---|---|---|
| Owns the database (provisions + migrates) | Fabi.ai connects to your existing warehouse or Postgres; it doesn't provision or own a database your app writes to. | ||
| Natural-language data questions | Fabi.ai's AI Analyst Agent writes and debugs SQL/Python in the notebook; nlqdb compiles SQL from English against a Postgres it owns and returns typed rows. | ||
| Embeddable answer element + SDK + API | Fabi.ai publishes dashboards and shares Smartbooks; nlqdb ships `<nlq-data>`, an SDK, and an HTTP API to query a database your product owns. | ||
| MCP server (agent-callable) | Fabi.ai's Analyst Agent MCP server exposes its notebook agent to external LLMs; nlqdb's `nlqdb_query` materialises a tenant Postgres on first reference. |
| Dimension | nlqdb | Fabi.ai | Note |
|---|---|---|---|
| Charts, dashboards + scheduled workflows | Fabi.ai builds dashboards and schedules workflows with Slack/email delivery; nlqdb returns typed result rows you render in your own UI. | ||
| Python notebook cells + DuckDB compute | Fabi.ai's Smartbooks mix Python and SQL with an embedded DuckDB engine; nlqdb's output contract is SQL plus rows, not a notebook runtime. | ||
| App connectors (Stripe, HubSpot, Salesforce…) | Fabi.ai pulls from Stripe/HubSpot/Salesforce/GA for analysis; nlqdb is the Postgres your app writes to, not a connector hub. | ||
| Auto-migration via NL ('add a column for tags') | |||
| Destructive-op diff preview before apply | Fabi.ai reads and analyses; it doesn't manage your schema. nlqdb previews writes and DDL before applying. |
shipped · partial · not shipped
No sign-in. The anonymous database lasts 72 hours; adopt it with one click if you keep it.
Start with a goal →The error has been recorded. Reload to recover; if it persists, sign out and back in.