BI + AI · Apache Superset Alternative

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.

Qrly wins

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
Tie / depends

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 Superset wins

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
Recommended Qrly Self-hosted · Belgium
Apache Superset Apache 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
Legend Included Partial / extra cost Not available
01 / Python ops tax

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.

02 / Embedding is a project

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.

03 / Configuration walls

"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.

04 / The one-way street

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.

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.

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Is Qrly a drop-in replacement for Apache Superset?

For most teams — yes. Qrly covers the core of what teams use Apache Superset for: database connections, SQL exploration, saved charts, dashboards and scheduled delivery. Teams that depend on a database driver Qrly does not ship — Oracle, Teradata, SAP HANA, MongoDB, Cassandra, Dremio and Firebird are the notable gaps — should confirm the match first. What Superset asks you to assemble from Celery workers, a broker, a cache, a metadata database and a headless browser, Qrly ships as a single process, with signed-JWT embedding included.

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?

Three things, and they are real. It is free under Apache 2.0, so there is no licence conversation at all. Its visualisation library is far larger than Qrly's thirteen chart types plus the dashboard trend card. And because it sits on SQLAlchemy it reaches databases Qrly has no driver for — Oracle, Teradata, SAP HANA, MongoDB, Cassandra, Dremio and Firebird among them. If your data lives in one of those, that decides the question before any of the rest of this page matters.

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?

Qrly is priced on revenue, not seats: a €15M-revenue company pays €6,300 a year — €18,900 over three years — for unlimited everything, one organisation, one installation. Apache Superset has no commercial edition and therefore no list price — it is an Apache Software Foundation project under Apache 2.0, and anyone quoting a per-user figure for it is selling their own hosting rather than Superset. Its cost is operational: a Python application, Celery workers, a broker, a cache and a metadata database to keep running and upgrade, with nobody to escalate to. That figure depends on what your engineers cost, so we will not guess at it.

Keep the self-host, drop the Python ops tax

Self-hostable. Flat pricing. Embedded Analytics, Alert and QQL included. Made in Belgium.