# Welcome to Shaper

**Open Source, SQL-driven Data Dashboards powered by DuckDB.**

Visualize data, build interactive dashboards, pdf reports and data exports simply by writing SQL.

```sql
SELECT 'Sessions per Week'::LABEL;
SELECT
  date_trunc('week', created_at)::XAXIS,
  category::CATEGORY,
  count()::BARCHART_STACKED,
FROM dataset
GROUP BY ALL ORDER BY ALL;
```

Get dynamic dashboards you can embed directly into your application, for example:

<ShaperDashboard id="wsu351ihqsg9ew90h62atugn" />

[Jump right to the Getting Started Guide](https://taleshape.com/shaper/docs/getting-started)

[See Managed Hosting and Support Plans](https://taleshape.com/plans-and-pricing)

### Features

**Dynamic Dashboards**
- Dynamic data [filters](https://taleshape.com/shaper/docs/dashboard-sql-reference/#filtering)
    - Generate [chart annotations](https://taleshape.com/shaper/docs/dashboard-sql-reference/#chart-annotations) from your data
    - Conditionally show [sections](https://taleshape.com/shaper/docs/dashboard-sql-reference/#section)

**The Full Power of DuckDB**
- Query across [data sources](https://taleshape.com/shaper/docs/connecting-to-data-sources/)
    - Pre-compute state as [temporary tables](https://taleshape.com/shaper/docs/dashboard-sql-reference/#create-temporary-table)
    - Use any [DuckDB extension](https://taleshape.com/shaper/docs/connecting-to-data-sources/#duckdb-extensions)

**Embedded Analytics**
- [Embed dashboards](https://taleshape.com/shaper/docs/dashboard-embedding/) into your application without iframe.
    - JS and React SDKs.
    - Generate per-user [JWT tokens](https://taleshape.com/shaper/docs/dashboard-embedding/#jwt-variables) to restrict access.

**Give users access to their data**
- Define custom [CSV](https://taleshape.com/shaper/docs/dashboard-sql-reference/#download_csv) and [Excel](https://taleshape.com/shaper/docs/dashboard-sql-reference/#download_xlsx) downloads.
    - Generate [PDFs](https://taleshape.com/shaper/docs/dashboard-sql-reference/#download_pdf)
    - Share any dashboard as [password-protected](https://taleshape.com/shaper/docs/public-sharing/) link.

**BI as Code**
- Version Control Dashboards with [Git](https://taleshape.com/shaper/docs/git-workflow/)
  - Use your [AI Agent](https://taleshape.com/shaper/docs/ai-agent-workflow/) of choice to create dashboards

**No lock-in**
Shaper is [open source](https://github.com/taleshape-com/shaper) and free to use.

**Own your Data**
Runs in your infrastructure.

**Simple Operations**
Run a single Docker container.

### More than a dashboard builder

Start data projects with a single tool. Bring in additional tools as needed.

Shaper allows you to keep simple things simple and plays well with other tools once your needs grow more complex.

**Remote Data**
- Query your [existing data](https://taleshape.com/shaper/docs/connecting-to-data-sources) right where it is.
    - Postgres, S3, Google Sheets. There is a [DuckDB extension](https://taleshape.com/shaper/docs/connecting-to-data-sources/#duckdb-extensions) for it.

**Data Transform**
- Automate loading and transforming data with [scheduled tasks](https://taleshape.com/shaper/docs/tasks-and-scheduling/) defined in plain SQL.
     - Move the SQL to DBT or SQLMesh as your data pipelines get more complex.

**Data Storage**
- Store data directly in DuckDB.
    - Build up a dedicated data warehouse or lake as your business grows.

**Ingest API**
- HTTP API to [ingest data](https://taleshape.com/shaper/docs/ingesting-data-into-shaper/) in real-time.
    - Shaper infers the data schema for you.