Your metrics live in CSV exports until someone builds a dashboard in a tool that fights SQL. Redash wants queries plus a chart picker. Metabase wants clicks. Sometimes you just want to write SELECT and have the bar chart appear because the query said so.
Shaper is that narrower tool: ~1.3k GitHub stars, MPL-2.0, from Taleshape. Dashboards are SQL documents with visualization hints baked into the result columns (::BARCHART_STACKED, ::XAXIS, labels in the query itself). DuckDB powers the engine, so local files and attached databases feel fast without standing up a warehouse first.
What it actually does
Shaper sits between a notebook and a full BI suite:
- SQL-first charts — compose dashboards by writing SQL; column annotations choose chart types and axes.
- Multiple sources — query across connected datasets (see upstream docs for connectors and DuckDB attach patterns).
- Git-friendly workflow — treat dashboard SQL like code: review in PRs, promote from dev to prod.
- Embedded analytics — white-label styles, React/JS SDK embeds without iframes, JWT row-level security for customer-facing views.
- Reporting — export PDF, PNG, CSV, Excel; scheduled alerts and password-protected share links.
Try it in thirty seconds: docker run --rm -it -p 5454:5454 taleshape/shaper then open http://localhost:5454/new. Production hardening lives in their deploy guide (TLS, auth, locking down admin).
Why self-host?
Customer dashboards on your domain. SaaS embeds often mean data passes through a vendor region. Shaper self-hosted on a Canadian VPS lets you issue JWT-scoped embeds where queries run against databases you control — useful for B2B "analytics portal" features.
DuckDB without a platform tax. Analysts can explore Parquet, CSV, and attached Postgres without provisioning a separate OLAP cluster for every small project.
Compliance ownership. Taleshape's own README splits responsibilities clearly: self-hosters own patching, backups, and audit evidence; managed hosting is optional if you want them to operate the box.
MPL-2.0. File-level copyleft on modifications to Shaper itself — generally friendlier for internal deployments than AGPL, but read the license if you ship a modified embed to clients.
What running it takes
Docker is the documented path for trials and production. Plan for:
- Port 5454 by default — put nginx or Caddy in front with TLS for anything public.
- Secrets & auth — follow production hardening; do not expose
/newto the internet without login. - Data connections — credentials for Postgres, files, or DuckDB extensions live in your environment; rotate them like any BI tool.
- Backups — Shaper metadata and DuckDB files need snapshot discipline before upgrades.
RAM depends on dataset size; start with 2–4 GB for team use, scale up when embeds hit concurrent readers or large DuckDB scans.
Who it's for (and who should skip it)
Good fit: product teams shipping embedded analytics, data folks who think in SQL, agencies white-labeling reports, Canadian SaaS adding a "your stats" portal without building charts from scratch.
Maybe skip it: if nobody writes SQL and never will, Metabase's click path may stick better. If you need classic internal BI with 35 ODBC sources and email alerts to executives, Redash still fits. If you only need marketing page views, use Rybbit or GoatCounter — wrong hammer.
Hosting it in Canada
Shaper runs well on a Docker host or VPS next to your app database: private network to Postgres, public embed subdomain with TLS, nightly volume backups.
Tell us embed vs internal use, data source types, and expected viewer count if you want a production checklist before JWT keys go live.
Want dashboards that are literally SQL? Talk with Swift Host — we are in St. Albert and actually answer the phone.