8 Cube Alternatives for Embedded Analytics (2026)
8 Cube alternatives for embedded analytics in SaaS: who needs a semantic layer first, React SDK vs iframe, tenant isolation, AI in the embed, and pricing shape.
For a React SaaS product on Postgres with many tenants, QueryPanel is the strongest of the Cube alternatives because it gives customers a working dashboard workspace with an AI assistant on day one, without asking you to model a semantic layer first. The other seven worth shortlisting are Embeddable, GoodData, Luzmo, Holistics, Lightdash, Omni, and the dbt Semantic Layer paired with your own UI.
Published October 19, 2026. Cube facts come from Cube's public documentation and pricing page, as indexed October 2026. Competitor details come from each vendor's own docs, linked inline; where we reuse an earlier check, we give its date. Pricing changes, so confirm before you budget.
Short answer: Keep Cube when one governed metric model has to serve many consumers at once: BI tools, notebooks, AI agents, and your product. Look at Cube alternatives when what you wanted was customer-facing analytics, and you found the order of work was "model the semantic layer, then build or configure the UI, then wire tenants." Pick QueryPanel for a headful React workspace where tenants customize dashboards with an AI assistant, plus a headless Node SDK when credentials and results must stay on your servers. Pick Embeddable or Luzmo for polished components with a builder. Pick GoodData for a governed enterprise platform with workspace-per-tenant. Pick Lightdash, Holistics, or Omni when dbt or a BI model already owns metrics. Pick the dbt Semantic Layer when you want metrics as infrastructure and are happy to build every pixel yourself.
Key takeaways
- Cube is a semantic layer first. Cube Core is open source (Apache 2.0 backend) and headless: no end-user UI. Embedded dashboards, Analytics Chat, and the React SDK are Cube Cloud features.
- Cube's embed paths are gated by plan. Iframe and SDK embedding are documented for Premium and Enterprise. Creator Mode, where your customers build their own views, is Enterprise only.
- The React Embed SDK is still in public preview per Cube's React Embed SDK docs, as indexed October 2026.
- Most teams searching for Cube alternatives don't object to semantic layers. They object to doing the modeling before a single customer sees a chart.
- Pricing shapes differ: Cube prices per developer seat with metered compute; Lightdash adds per-load embed fees; Embeddable and Holistics sell flat or tiered plans; QueryPanel counts tenants, not seats.
Do you need a semantic layer first? A decision tree
Answer these in order. Stop at the first "yes."
- Do several products already read the same metrics? For example, Tableau, a Python notebook, an internal agent, and your customer dashboard all report "net revenue retention," and the numbers must match. → A semantic layer is the right center. Stay on Cube, or compare it with the dbt Semantic Layer, GoodData, or Lightdash.
- Does a data team own dbt models and want the embed to inherit them? → Look at Lightdash (dbt-native), Holistics, or Omni. Each has its own model, and each can save you writing a separate Cube schema.
- Is the goal "ship analytics inside our React app this quarter," with product engineers doing the work? → You need a working customer UI and tenant isolation more than a metrics catalog. Look at QueryPanel, Embeddable, or Luzmo.
- Must database credentials and query results never leave your servers? → Look at QueryPanel's headless Node SDK or self-hosted Cube Core with your own UI.
- None of the above, and you just want dashboards for a few big customers? → A managed builder (Luzmo, Embeddable) or a BI tool with embedding (Holistics, Omni) is enough.
The trap is answering question 1 with "someday." A semantic layer pays off when metrics are reused. If your only consumer for the next year is one customer-facing surface, you are paying the modeling cost up front for reuse you may not need.
If you are weighing this question for AI specifically, read semantic layers for AI agents in multi-tenant analytics. It covers when a governed model is the right ground truth for an agent and what you still need around it.
What Cube sells for embedded analytics today
Cube's embedding overview describes several surfaces that share one security context:
- Iframe embedding of dashboards and Analytics Chat. Private embedding is for internal users with Cube accounts. Signed embedding is for customer-facing apps: your backend calls the Generate Session API with an API key, and the browser loads the iframe with that session.
- React Embed SDK (
@cube-dev/embed-sdk), in public preview. It needs TanStack Query as a peer dependency and uses the same session model as signed embedding. Because it calls Cube's APIs directly rather than through an iframe, you mint a new session before the old one expires. - Creator Mode, so customers can build and save their own views. It requires signed embedding and the Enterprise plan. Content is scoped per
embedTenantName. - Headless APIs: SQL, REST, and GraphQL over the semantic layer, plus a Chat API for custom Analytics Chat experiences (Embed APIs).
Tenant isolation comes from a security context: verified claims in a JWT your backend signs. Row-level isolation is usually a queryRewrite that adds a tenant filter to each query, and Cube's multitenancy docs cover per-tenant data models with context_to_app_id. Note one detail from those docs: the query queue and pre-aggregations are shared between tenants unless you configure otherwise. Test cache keys with two tenants before launch.
What Cube costs
Cube's pricing page, as indexed October 2026, lists:
| Plan | Price | Relevant to embedding |
|---|---|---|
| Free | $0 | Semantic model agent, limited workbooks; no embedding |
| Starter | $40 per developer per month | Unlimited workbooks, extended agent limits; no embedding |
| Premium | $80 per developer per month | Embedded dashboards, Explorer and Viewer roles, 99.95% uptime SLA |
| Enterprise | Custom | Creator Mode, single-tenant install, BYOC, SAML SSO, 99.99% SLA |
Cube Cloud also meters compute in Cube Compute Units. We have not reprinted per-unit rates because we could not confirm them on Cube's own page; ask for them in your quote. AWS Marketplace listings show annual minimums for Premium and Enterprise contracts.
The practical read: if you want customers to build their own dashboards inside your product, the Cube path is Enterprise. If view-only embeds are enough, Premium covers them.
When Cube is still the right choice
Cube is a serious piece of infrastructure, and for some teams no alternative here beats it. Keep Cube when:
- Metric consistency across many consumers matters most. One model feeds BI tools over the SQL API, agents over MCP or the Chat API, and your product over REST or the embed. Every surface reports the same number.
- BI tools and AI agents both need the same governed definitions. Cube's agentic analytics harness article argues for this setup, and it is a sound pattern when certified measures already exist.
- Caching is a product requirement. Pre-aggregations are a real advantage on large warehouse tables where raw queries are slow or expensive.
- You want open-source infrastructure you can self-host. Cube Core runs anywhere, with no seat limits, and you own the frontend.
- Your data team already maintains Cube models. Switching costs are real; rewriting a working semantic layer to chase a different UI rarely pays off.
Leave when the blocker is the product surface: customers waiting on dashboards, an SDK still in preview, or Creator Mode priced beyond your stage.
Cube alternatives at a glance
| Alternative | Embed model | Semantic layer required? | Tenant isolation | AI in the embed | Pricing shape |
|---|---|---|---|---|---|
| QueryPanel | Headful React SDK; headless Node SDK | No. Optional knowledge base (gold SQL, annotations, glossary) | Server-minted RS256 tenant JWT; tenant filter applied at SQL generation and checked before execution | NL to SQL and charts; AI assistant edits dashboards | Counts tenants, not seats |
| Embeddable | Web component (no iframe) | Yes, code-defined models | Security context in server token; RLS; per-tenant DB | AI chatbot labeled prototype | Sales-led subscription |
| GoodData | React SDK (GoodData.UI), iframe | Yes, logical data model | Workspace per tenant | AI Assistant component | Quote-based |
| Luzmo | React, Vue, Angular, web components | No, dataset-level | Parameter filters in embed token; connection overrides | Luzmo IQ chat and prompt-to-chart | Published tiers plus usage |
| Holistics | Signed iframe (JWT) | Yes, AML models | JWT attributes and row-level permissions | AI in Embed Portal | Usage-based or flat tiers, no per-user fees |
| Lightdash | React SDK (@lightdash/sdk) | Yes, your dbt project | JWT userAttributes into dbt sql_filter | AI agent component (iframe) | Cloud plan plus per-load embed fee |
| Omni | Signed URL in an iframe | Yes, Omni model | User attributes; entity workspaces | Dashboard Agent; AI API for embed agents | Not public |
| dbt Semantic Layer | None; you build the UI | Yes, MetricFlow | Your API layer | Whatever you build | dbt Starter or Enterprise plan |
Use the table to cut to two or three finalists, then run the test plan below.
1. QueryPanel: best for React SaaS on Postgres that needs a customer UI before a metrics catalog
Choose QueryPanel when: product engineers own analytics, the app is React, the data lives in Postgres, ClickHouse, BigQuery, or MySQL, and customers should ask questions and customize dashboards without your team modeling every measure first.
QueryPanel's primary product is its headful React SDK with a Notion-like dashboard management system and AI assistant for tenant customization. QueryPanel also offers a headless Node SDK for custom UI implementations with zero-trust architecture, where customer data never leaves customer servers.
How the order of work differs from Cube:
- Cube: define cubes, measures, and joins → configure security context → choose iframe, preview SDK, or APIs → build or configure the UI → (Enterprise) enable Creator Mode.
- QueryPanel: attach the database and declare the tenant column → mint a JWT on your server with
createJwt()→ renderQuerypanelEmbedded→ improve answers over time with gold SQL, annotations, and glossary terms.
The two QueryPanel paths share one tenant model:
- Headful.
QuerypanelEmbeddedrenders inside your React tree, not an iframe. Customers ask in plain language, get SQL-backed charts, and reshape dashboards with the assistant. Per-tenant variations are dashboard forks, so one customer's edits never touch another's. Start with the React SDK docs. - Headless. Call
ask()from your API route with the tenant ID from your session. QueryPanel returns SQL and a chart spec; your callback runs the SQL against your database. Credentials and rows stay on your infrastructure. See the Node SDK docs.
Tenant identity always comes from your server, never from a browser prop. Generated SQL is checked for the tenant filter before it runs, which is the same fail-closed behavior you would write as a Cube queryRewrite. See tenant isolation.
Pricing: plans count unique tenants per billing month, not end-user seats or developer seats. AI chart generation is metered separately, and there is a free tier. See pricing.
Watch for: QueryPanel is not a semantic-layer product. It will not serve governed metrics to Tableau or a notebook. If you need one metric model for many consumers, keep Cube for that job and evaluate QueryPanel only for the customer surface. QueryPanel is also a smaller vendor, does not focus on pixel-perfect or scheduled PDF reporting, and the headful SDK is React only. Natural-language-to-SQL accuracy depends on your schema, so test it on yours.
Best proof: attach one real Postgres schema, create two tenants with uneven data, and ask the same five questions as each. Compare the SQL, the rows, and what each tenant can change. For the build pattern, follow the tenant-safe React and Postgres tutorial.
2. Embeddable: best for code-owned components without an iframe
Choose Embeddable when: developers want to define data models and chart components in code, and ship a native-feeling embed.
Embeddable embeds dashboards as a web component authorized by a short-lived server token. Isolation uses a security context with row-level security, and environments can map customers to their own databases. Custom Canvas lets end users build dashboards from datasets and templates you define. Embeddable's data models are .cube.yml files in Cube's format, and its community FAQ describes running on Embeddable's managed Cube or your own Cube Core or Cube Cloud. A team leaving Cube for UI reasons can carry its models over. Pricing is sales-led (as checked September 22, 2026).
Watch for: the AI chatbot was labeled a prototype in our September 2026 check, and there is no npm React wrapper; you render the custom element. Compare in detail in Embeddable alternatives.
3. GoodData: best for governed, enterprise-scale multi-tenancy
Choose GoodData when: you want a mature semantic platform with strong tenant management and procurement-friendly enterprise features, and you are comfortable with modeling work.
GoodData's React SDK renders dashboards and visualizations as React components, and @gooddata/sdk-ui-gen-ai adds an AI Assistant component (embedding docs). Multi-tenancy is usually one workspace per customer, with a shared logical data model that child workspaces inherit. Pricing is quote-based, and third-party reviews describe it as workspace-based rather than per user.
Watch for: you are swapping one semantic layer for another. If modeling time was the reason you are searching for Cube alternatives, GoodData does not remove it. Some AI APIs have been marked alpha. See GoodData alternatives and QueryPanel vs GoodData.
4. Luzmo: best for a polished editor across frameworks
Choose Luzmo when: you want drop-in dashboard components, an embedded editor customers can use, and an AI assistant, without building a semantic layer.
Luzmo ships React, Vue, Angular, and web component packages. Tenant data is scoped with parameter filters in the embed token or per-tenant connection overrides. The embedded editor opens for users with a designer or owner role, and Luzmo IQ adds chat and prompt-to-chart. Luzmo's pricing page listed plans from €1,995 per month billed annually in our September 22, 2026 check, with AI and data usage metered.
Watch for: some contracts scale on monthly active users. Confirm the billing unit in your quote. See Luzmo alternatives and Embeddable vs Luzmo.
5. Holistics: best for analytics-as-code with unlimited embed viewers
Choose Holistics when: a data team wants modeling in code (AML) and git workflows, and an iframe is acceptable.
Holistics embeds through a JWT-signed iframe: your server signs a payload with row-level permissions and filters, and the frontend loads the iframe. An Embed Portal works as a small BI app for customers, with self-service reporting through a GUI and AI. Holistics publishes embedded pricing with no per-user fees for embedded end users; we found both usage-based and flat annual tiers listed, so confirm which applies.
Watch for: the iframe boundary. Read iframe vs native React before committing.
6. Lightdash: best when dbt already owns your metrics
Choose Lightdash when: your metrics live in a dbt project and you want React components that inherit them.
@lightdash/sdk embeds dashboards, charts, and Explore as React components, with tenant filters passed as JWT userAttributes into dbt sql_filter rules (React SDK docs). Lightdash's embedding page lists the embed as an add-on: the first 1,000 loads free, then $0.05 per load, or $790 per month for 100,000 loads per Embed Worker, on top of a Cloud plan (pricing).
Watch for: the AI agent component renders inside an iframe, and per-load fees grow with usage. If you don't use dbt, Lightdash's main advantage disappears.
7. Omni: best for BI-first teams that also embed
Choose Omni when: analysts want a modern BI tool with a shared model, and customer embeds are a second use of the same workspace. It is also the default path for Explo customers after Omni acquired Explo in October 2025.
Omni's embed docs describe a server-side @omni-co/embed package that signs a URL, which your frontend loads in an iframe. Tenant scope comes from user attributes passed at signing, mapped to filters in the model, with entity workspaces for per-customer content. Omni's Dashboard Agent answers questions about tiles in place but cannot edit the dashboard. Pricing is not public.
Watch for: the iframe embed and the BI-first product shape. If you are leaving Explo, read Explo alternatives after the Omni acquisition.
8. dbt Semantic Layer: best for metrics as infrastructure, UI entirely yours
Choose the dbt Semantic Layer when: you like Cube's idea of headless metrics, your data team already lives in dbt, and you plan to build the whole customer UI yourself.
MetricFlow, the engine behind the dbt Semantic Layer, moved to Apache 2.0 in October 2025. The hosted Semantic Layer APIs (JDBC and GraphQL) and BI integrations need a dbt Starter, Enterprise, or Enterprise+ plan per dbt's FAQ; caching is limited to Enterprise tiers.
Watch for: there is no embed product. Tenant isolation, charts, dashboards, AI, and permissions are all your code. This is the closest like-for-like swap for Cube's semantic layer and the furthest from "ship customer analytics this quarter."
Migration and test plan
Run the same checks on every finalist, using your schema and two real-shaped tenants. Budget two weeks.
- Inventory what Cube does for you today. List the cubes and measures that a customer screen actually reads. Most teams find that the customer surface uses a small fraction of the model. That fraction is your migration scope.
- Decide what keeps Cube. If BI tools or agents read the same model, you can keep Cube for them and move only the customer-facing embed. A split like this is common and often the lowest-risk path.
- Port five gold metrics. Pick the five numbers customers look at most, such as monthly active accounts or revenue by plan. In QueryPanel, add them as gold SQL and glossary entries. In GoodData, Lightdash, or dbt, model them. Compare results against Cube to the cent.
- Tenant identity from your server. The tenant must come from your backend token, never from a filter the browser can edit.
- Fail closed on broad questions. "Show all orders" as tenant A returns only tenant A's rows, in dashboards, exports, AI answers, and cached results. Cube's shared pre-aggregation cache is a reason to test the cache path specifically.
- Customer editing. Can a tenant change a shared dashboard for themselves without affecting other tenants? On Cube this is the Creator Mode question; on others, check the plan that includes it.
- Your React routes. Mount two analytics views on one page, test your router and theme, and check SSR behavior if you use Next.js. For the trade-offs between owning UI and getting one, see headful vs headless embedded analytics.
- Price at 1x, 2x, and 5x. Model developer seats, viewer seats, loads, compute units, and tenants. Ask each vendor which unit grows with your customer count.
For Postgres-specific options, see the best embedded analytics tools for Postgres and React. If you are also weighing BI-style tools, our Metabase alternatives guide covers the per-seat side of the market.
FAQ
What are the best Cube alternatives for embedded analytics?
QueryPanel for a React customer workspace with AI and no semantic layer required; Embeddable for code-owned web components; GoodData for governed enterprise multi-tenancy; Luzmo for a polished multi-framework editor; Holistics for analytics-as-code with no per-user embed fees; Lightdash when dbt owns metrics; Omni for BI-first teams; and the dbt Semantic Layer when you want headless metrics and will build the UI.
Is Cube open source?
Cube Core is open source, with an Apache 2.0 backend and MIT-licensed client libraries in the cube-js/cube repository. It is headless and has no end-user UI. Embedded dashboards, Analytics Chat, Creator Mode, and the React Embed SDK are Cube Cloud features.
How much does Cube Cloud cost?
Per Cube's public pricing page, as indexed October 2026, it lists Free, Starter at $40 per developer per month, Premium at $80 per developer per month, and custom Enterprise. Embedded dashboards start at Premium, Creator Mode requires Enterprise, and compute is metered separately.
Does Cube have a React SDK for embedded analytics?
Yes. @cube-dev/embed-sdk provides React components and uses the same session model as signed embedding. Cube's docs list it as public preview on Premium and Enterprise plans as of October 2026.
Do I need a semantic layer before adding customer-facing analytics?
Not always. A semantic layer pays off when several tools must report the same metrics. If your only consumer is one customer-facing surface, you can start with a tool like QueryPanel that learns from gold SQL, annotations, and glossary terms, and add a governed model later if reuse demands it.
Cube vs QueryPanel: which should I choose?
Choose Cube when one governed metric model must serve BI tools, agents, and your product, and you have a data team to own it. Choose QueryPanel when product engineers need a tenant-safe React dashboard workspace with an AI assistant soon, or a headless path where SQL runs on your servers. Some teams use both: Cube for internal metrics, QueryPanel for the customer surface.
Which Cube alternative keeps data on our servers?
QueryPanel's headless Node SDK generates SQL and a chart spec, and your backend runs the query, so credentials and rows never reach QueryPanel. Self-hosting Cube Core or MetricFlow also keeps data in your infrastructure, but you then build and operate the customer UI.
Next step
If your Cube evaluation stalled on the UI and modeling work, test the other order: put a working customer dashboard in front of one tenant first, then decide how much modeling you need. Start with the React SDK docs, or see pricing for the free tier.