QueryPanel vs Embeddable
Composable charts and builder-oriented embedding.
Embeddable focuses on composable analytics UI. Teams that enjoy owning chart configuration, layout, and presentation details often evaluate builder-first tools.
Comparison at a glance
This table summarizes typical positioning. Every vendor changes over time—validate details against current documentation and your security review.
| Dimension | Embeddable | QueryPanel |
|---|---|---|
| In-app experience for end users | Composable blocks you integrate yourself; whether the experience feels native or iframe-like depends on how you build the shell. | First-class `@querypanel/react-sdk` components—`QuerypanelEmbedded` for a full dashboard, or `QueryPanelProvider` with `QueryInput` / `QueryResult` for a bespoke flow. They render in your React tree like any other product screen (layout, router, modals, tokens)—not a separate iframe "mini app" on another origin. Mint short-lived JWTs on your server; never ship your workspace private key to the browser. |
| Core value | Composable embedding and builder workflows for charts and dashboards. | AI-driven generation plus a ready-made React embed: less manual assembly per new customer question. |
| Trainable knowledge & steering | You own the full knowledge story—gold SQL, glossary, and tenant-aware steering are whatever you implement around your chart composition layer. | Gold SQL queries (curated examples the model prioritizes), database annotations (business context on tables/columns, re-embedded with schema), glossary (domain terms and definitions), and tenant-level definitions (isolation field, enforcement, and per-tenant sync context so every ask() is grounded in the right customer slice—not a one-size global prompt). |
| SQL generation | Depends on how you wire data and queries; often you bring more of the pipeline. | First-class NL→SQL with validation hooks meant for production SaaS backends. |
| Developer workload | Higher control often means more integration and UI assembly work. | Opinionated paths to ship faster: `@querypanel/react-sdk` for full workspace embeds, `@querypanel/node-sdk` when you want headless `ask()` from the server. |
| Multi-tenant | You implement tenant isolation patterns in your integration layer. | Tenant context is part of the ask() / generation contract for safer customer queries. |
| Ideal team | Front-end heavy teams with time to craft the analytics experience. | Small product teams that need analytics shipped without a dedicated visualization squad. |
When Embeddable is the better fit
Honest tradeoffs help your team pick faster—and match how buyers actually decide.
- You want maximum front-end control over every chart and interaction primitive.
- Your team already has strong opinions on visualization libraries and design systems.
- You are building a highly custom analytics canvas rather than a standard dashboard shell.
When QueryPanel is the better fit
- You want a trainable knowledge system—gold queries, DB annotations, glossary, and tenant-aware definitions—so NL→SQL and charts reflect your business, not generic schema-only guesses.
- You want a batteries-included embedded workspace as React—`QuerypanelEmbedded`—instead of hand-assembling every chart primitive, and you do not want that workspace trapped in an iframe.
- You want the full loop from customer language to SQL to visualization as one product workflow.
- You care about tenant-scoped SQL generation as the backbone of self-serve customer questions.
- You still want a headless Node `ask()` path when you need server-side or fully custom UI.
Still evaluating Embeddable and QueryPanel?
Start on the free tier, embed one dashboard, and compare implementation time against your current shortlist.