Qrly vs Apache Superset
BI + AI in one self-hosted platform — natural-language Ask (NL→SQL) and BYO LLM (local Ollama / LM Studio or Anthropic, Gemini, OpenAI, Azure) included by default. Apache Superset has no AI Ask, no native LLM integration and a heavy Python + Celery ops burden — Qrly ships as a single binary with the AI story already built in.
Who wins where
No marketing fluff. Here is where each tool is genuinely stronger.
BI + AI in one self-hosted platform — flat pricing
- AI Ask (NL→SQL) with AI anomaly detection & schema descriptions
- BYO LLM — Anthropic, Gemini, OpenAI, Azure, or local Ollama / LM Studio
- Embedded analytics with signed JWT and locked parameters, included
- Single binary / container — no Python + Celery ops stack to babysit
- Native Alert delivery with multi-channel fan-out
- Flat license — no per-user scaling cost
Open, self-hostable foundations
- Both self-host, with your data staying in your own region
- Both connect to a wide range of SQL databases
- Both ship a SQL workbench and a chart builder
- Both support SSO and LDAP integrations
Apache 2.0 & a huge chart library
- Free and open source under Apache 2.0
- A far larger visualisation library out of the box
- Broader driver coverage via SQLAlchemy, Oracle included
- Long track record, large installed base
Feature-by-feature comparison
The features most teams actually evaluate when weighing Qrly against Apache Superset.
| Feature | RecommendedQrlySelf-hosted · Belgium | Apache SupersetApache Superset GmbH · Germany |
|---|---|---|
| Self-hostable on your own infra | Included | Included (Apache 2.0) |
| Same saved question runs on 12 SQL dialects | Included | SQL is written per database |
| Built-in customer embed portal | Included | Embedded SDK behind a feature flag |
| Native Alert with auto-escalation | Included | Alerts and Reports via Celery beat |
| Native scheduled subscription (4 providers) | Included | Email and Slack, headless browser required |
| Visual query builder and raw SQL, round-trip convertible | SQL ⇄ visual | Explore shows SQL; no reverse |
| Azure AD + Google + LDAP + Basic simultaneously | Included | One AUTH_TYPE in the config file |
| OIDC SSO user provisioning | Included | No SCIM provisioning |
| AI with on-prem option (Ollama, LM Studio) | Included | No first-party AI offering |
| Multi-tenant architecture out of the box | Included | Single instance per deployment |
| Connects to your existing warehouse on day 1 | 40 connectors | Broad coverage, driver install per source |
| Flat pricing (unlimited users) | Included | Free licence; operations are the cost |
| Productive in under 5 minutes | Included | Python, Celery, broker, cache, metadata DB |
| EU data residency (native, not a tier) | Included | Included |
| No marketplace plugin required for basics | Included | Feature flags and config-file edits |
| Dashboards, charts and geographic maps | Included | Included |
| REST API + webhooks | Included | Included |
| OLAP models with ROLLUP, CUBE and GROUPING SETS | Included | Ad-hoc metrics; no modelling layer |
| Markdown analyses and multi-format export | Included | CSV and Excel export |
Four reasons teams leave Apache Superset
Patterns that come up repeatedly in migration conversations with data and platform leaders.
A production Superset is a small fleet
Apache Superset is a Python and Flask application, and the single-container demo is not the shape you run in production. That shape is a web tier, Celery workers, Celery beat for schedules, a message broker, a cache, a separate metadata database, and a headless browser so that alerts and reports can screenshot a dashboard. Every one of those needs monitoring, patching and a place in your upgrade plan, and the Python dependency graph has to resolve again on every one of them.
Qrly ships as a single binary or container. Scheduling, materialisation, streaming and the AI layer live in the same process. One thing to start, one thing to back up, one thing to upgrade — and the difference shows up on the first upgrade weekend rather than in the evaluation.
Showing a dashboard to a customer is work
Superset can embed a dashboard, but it is a build: turn on the embedded feature flag, register the embedding, stand up a service that mints guest tokens with the right row filters, and wire the JavaScript SDK into your own front end. It works, and every team that does it writes and then maintains that token service themselves.
Qrly embeds a dashboard with a signed JWT and locked parameters, so an embedded viewer cannot widen the query beyond what the token allows. Cascade filters, live push over an interval or a Postgres LISTEN/NOTIFY channel, and scheduled subscriptions all work inside the embed. Same install, same licence, same access controls.
"Free" is a licence, not a budget
Superset is free under Apache 2.0, which is genuinely valuable and we respect the project for it. The cost lands somewhere else. Authentication, security roles, caching, async query execution and most of the interesting behaviour are set in a Python configuration file and behind feature flags, which means a code review and a redeploy for changes that a reviewer will expect to see in an admin screen. Upgrades are yours to plan, and so is every driver you install.
Qrly puts SSO, OIDC, audit logs, query governance and on-prem AI in the base product, configured in the interface rather than in a file on the server. We are equally clear about what is missing: there is no MFA and no row-level security today, and embed locked parameters are the closest equivalent.
Explore and SQL Lab do not meet
Superset gives you two good tools that face away from each other. Explore builds a chart from ad-hoc filters and metrics and will show you the SQL it generated. SQL Lab runs whatever you write, with Jinja templating on top. What it will not do is take the SQL an analyst wrote and load it back into the chart builder, so the moment a question outgrows Explore it leaves the visual world permanently.
Qrly treats that as a round trip. Any visual question compiles to SQL you can read, and a flat SELECT pasted into the editor is reverse-engineered into a visual definition — joins, filters, group by, having, order by with NULL ordering, limit and offset — with CTEs, UNION and subqueries reported as lossy rather than silently dropped. Drill-down keeps working either way: ROWS mode strips the aggregation, FILTER mode narrows to the group you clicked.
Pricing, honestly
Our own list price in full, and an honest account of what Apache Superset actually costs to run, given that nobody sells it. The Qrly column is the published schedule evaluated at €15M of revenue — the number of people using it does not move it.
Methodology, 28 August 2026. Qrly publishes a complete rate card, so the figures in our column are quoted exactly. The other column describes a pricing model rather than quoting a number: vendor list prices change without notice and several of these vendors do not publish one at all. For current figures, go to the vendor’s own pricing page.
Qrly
Annual licence · priced on your revenue · unlimited users, one organisation, one installation
- Annual licence at €15M revenue €6,300
- Per analyst / per viewer €0
- Per query, per credit, per capacity unit €0
- Embedded dashboard consumers €0
- Embedding, alerts, OIDC/SSO, row-level rules Included at every tier
- Self-hosting and bring-your-own LLM Included at every tier
Three years of licence: €18,900
That is our published schedule evaluated at €15M of revenue — 0.18% of the first €500k, then 0.12%, 0.0525% and 0.027% on each tranche above it. It does not move when you add users. The whole rate card, from the €900 floor upward, is on the pricing page.
Apache Superset
Apache-2.0 open source · no commercial edition exists
- Software licence Free — Apache 2.0
- Paid edition from the project There isn’t one
- Vendor support None from the ASF — community only
- Commercial hosting Third-party vendors, priced independently of the project
- What you operate yourself Python app, Celery workers, a broker, a cache, a metadata database
- Upgrades, patches, SSO and tenancy Your engineers and your config files, not a purchase order
There is no Superset price list, because there is no Superset vendor — it is an Apache Software Foundation project. Anyone quoting you a per-user figure for “Superset Enterprise” is selling their own hosting, not Superset. The honest comparison is operational: five moving parts to keep alive, an upgrade path you own, and nobody to escalate to at 2am. We will not attach a number to that, because it depends entirely on what your engineers cost and how much of their week you want this to occupy.
Moving from Apache Superset to Qrly
Most teams rebuild their core dashboards in a working week, even from a large Apache Superset instance.
The standard migration path
Both tools read your database directly, so there is nothing to extract and nothing to load. What transfers is the chart and query definitions, and Superset exports those cleanly as YAML or through its REST API.
- Reuse the database connection. Qrly ships 40 connection types compiling to 12 SQL dialects — Postgres, MySQL, MariaDB, SQL Server, BigQuery, Snowflake, Redshift, SQLite, H2, DB2, Sybase and Pervasive. Point Qrly at the same database Superset reads; the warehouse never notices.
- Export the chart definitions. Superset exports dashboards, charts and datasets as YAML, and the REST API returns the same objects. Use that export as the inventory: what exists, what each chart queries, and what nobody has opened in a year.
- Rebuild the queries. Saved SQL Lab queries paste straight into the Monaco editor, and Qrly reverse-engineers a flat SELECT into a visual definition, flagging CTEs, UNION and subqueries as lossy. Jinja template parameters become
{{template_variables}}bound as prepared-statement parameters. - Point users at Qrly. OIDC or LDAP bring users over from your identity provider. Existing Apache Superset accounts map onto Qrly users on first login.
- Retire the workers. Celery, the beat scheduler, the broker, the cache and the headless browser used for report screenshots go with the old install. Scheduled subscriptions, result materialisation and NDJSON streaming all run inside the single Qrly process.
Common questions
Is Qrly a drop-in replacement for Apache Superset?
How do we move our Superset dashboards to Qrly?
Nothing has to be extracted from the database, because both tools read it directly. Point Qrly at the same connection and the warehouse never notices the change.
Superset exports its dashboards, charts and datasets as YAML, and the REST API returns the same objects — that export is your inventory. The SQL is then rebuilt in Qrly: paste a saved SQL Lab query into the Monaco editor and Qrly reverse-engineers a flat SELECT into a visual definition, reporting CTEs, UNION and subqueries as lossy. Jinja template parameters become {{template_variables}} bound as prepared-statement parameters.
Both self-host — what is the real difference?
Apache Superset is an Apache Software Foundation project under the Apache 2.0 licence: a Python and Flask application that in production also wants Celery workers, a message broker, a cache, a metadata database and a headless browser for report screenshots. Qrly is a single binary or container built in Belgium on a flat licence priced by revenue. Both self-host, and both keep your data in your own region.
The practical differences are the operational surface, signed-JWT embedding and a native Alert engine in the base product, and a visual query builder that converts to SQL and back. Superset in return costs nothing to licence, has a much larger chart library, and reaches databases Qrly has no driver for.
What is Apache Superset genuinely better at?
How does QQL compare to Superset SQL Lab and Explore?
Superset splits the work in two. SQL Lab runs raw SQL with Jinja templating; Explore builds a chart from ad-hoc filters and metrics and will show you the SQL it generated. The two do not round-trip — hand-written SQL cannot be loaded back into the chart builder — so a question that outgrows Explore leaves the visual world for good.
QQL is one artefact for both jobs: a JSON query document with around 35 filter operators, four join types, calculated fields and question-as-view composition, compiled to SQL for 12 dialects. Paste a flat SELECT in and Qrly converts it back into that visual definition, flagging CTEs, UNION and subqueries as lossy. For time-based analysis it offers PAST_N_DAYS, START_OF_MONTH and AT_TIMEZONE, an OLAP time hierarchy from year down to hour, and prior-period and prior-year comparison columns.
Cost for 50 users over 3 years?
The full alternatives matrix
Evaluating Qrly against another tool? Jump to the detailed side-by-side.