finds.dev← search

// the find

taleshape-com/shaper

★ 1,146 · Go · MPL-2.0 · updated Jun 2026

Visualize and share your data. All in SQL. Powered by DuckDB.

Shaper turns SQL queries into dashboards by abusing type casts as chart directives — `count()::BARCHART_STACKED` becomes a bar chart, no config file needed. It's a self-hosted Go server backed by DuckDB, aimed at small teams who want analytics without standing up Metabase or Grafana. The embedded analytics angle (row-level security via JWT, no-iframe React SDK) makes it interesting for SaaS products shipping customer-facing reports.

The SQL-as-config idea is genuinely clever: your query is the dashboard definition, so it lives in version control without a separate serialization format. DuckDB as the query engine means you can point it at Parquet files, S3, CSVs, and other databases without an ETL step. The embedded path (white-label, JWT row-level security, `::EMBED` without an iframe) is more practical than most BI tools offer out of the box. Go single-binary deployment with Docker one-liner lowers the ops burden compared to Python-based alternatives.

The custom cast syntax is clever until it isn't — `::BARCHART_STACKED`, `::XAXIS`, `::CATEGORY` are magic strings that DuckDB itself doesn't understand, so you lose type checking, editor autocomplete, and any query tool outside Shaper. With 42 forks and one commercial company behind it, the bus factor is high; MPL-2.0 is fine but the managed hosting push suggests the open-source version may lag. The git-based workflow for dashboards is described but not explained in the README — it's unclear how conflicts or multi-user editing works in practice. PDF/PNG export goes through a separate renderer (`server/pdf/`) which historically becomes a maintenance headache when Chromium or the PDF library updates.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →