v2.4 ships native DuckDB and Trino support

Your SQL query is already a chart.
Plotbase just renders it.

Connect a database, write the query you were going to write anyway, and get a production-ready, embeddable chart in seconds. No BI tool bloat, no drag-and-drop purgatory.

$ npm install -g plotbase
revenue_by_region.sql ▶ 142 ms · 8 rows
1-- weekly revenue, last 8 weeks
2SELECT
3  date_trunc('week', paid_at) AS week,
4  sum(amount_usd) AS revenue
5FROM payments
6WHERE paid_at > now() - INTERVAL '8 weeks'
7GROUP BY 1 ORDER BY 1;
8
9-- @plotbase: type=bar, x=week, y=revenue

Weekly revenue

postgres · prod-replica
$80k$60k $40k$20k W18W19W20 W21W22W23 W24W25
revenue (USD)

Trusted by data teams shipping fast

▲ Northwind Labs◆ Fjordline● Heliodata ■ Cobalt AI✦ Stackform◢ Railgrid

// features

Built for people who think in SELECT statements

Plotbase stays out of your way. Write SQL, add one comment directive, and the chart, the caching, and the sharing are handled.

One-comment charting

Append -- @plotbase: type=line to any query and Plotbase infers axes, formats, and series from your result set. Override anything when you want control.

🔌

Every warehouse you use

Postgres, MySQL, SQLite, DuckDB, BigQuery, Snowflake, ClickHouse, Trino, and Redshift. Read-only connections by default, with credential vaulting built in.

🧬

Charts as code

Every chart is a .sql file in your repo. Version it, review it in PRs, and deploy dashboards through CI like any other artifact.

📦

Embed anywhere

Drop charts into your app with a signed iframe, a React component, or a plain image URL that re-renders on a schedule. Dark and light themes included.

🕒

Smart caching

Plotbase fingerprints each query and caches results at the edge. Heavy aggregations run once per interval, not once per viewer. Your DBA will thank you.

🔔

Alerts on any series

Turn a chart into a monitor with a threshold rule. Get pinged in Slack or PagerDuty when signups dip or p95 latency climbs out of band.

// how it works

Query to chart in three steps

Median time from install to first shared chart: 4 minutes 32 seconds, measured across the last 10,000 signups.

Connect a source

Point Plotbase at any database with a single command. Credentials are encrypted locally and never leave your machine on the free tier.

$ plotbase connect \ postgres://ro@db.prod/core ✔ connected as read-only

Write your query

Use the SQL you already know. Plotbase reads the result shape: a date column becomes the x-axis, numerics become series.

SELECT day, signups, churned FROM growth_daily ORDER BY day -- @plotbase: type=area

Ship it

Publish to a live URL, embed in your product, or pipe a PNG straight into a Slack standup. The chart stays in sync with the data.

$ plotbase publish growth.sql ✔ live at plotbase.app/c/x9k2 ✔ refresh: every 15 min

// for developers

A CLI and API that respect your workflow

Everything in Plotbase is scriptable. If you can cron it, pipe it, or commit it, Plotbase fits.

plotbase render outputs SVG or PNG to stdout, so charts drop straight into READMEs, PRs, and reports.
REST and GraphQL APIs for creating charts, rotating tokens, and pulling cached result sets as JSON or Arrow.
React, Vue, and Svelte components with first-class TypeScript types generated from your schema.
SOC 2 Type II, SSO and SCIM on Team plans, and a self-hosted runner for air-gapped environments.
zsh · ~/analytics
$ plotbase render churn.sql --format svg --theme dark
→ connecting to bigquery:prod-analytics
→ query fingerprint a91f…c2 (cache miss)
→ scanned 2.1 GB in 1.8 s, 31 rows returned
✔ wrote churn.svg (12.4 KB)

$ plotbase publish churn.sql --refresh 1h --slack #growth
✔ published https://plotbase.app/c/churn-q2
✔ posting to #growth every weekday at 09:00 UTC

// pricing

Free until your team can't live without it

No credit card to start. Usage is measured in published charts, never in query volume.

Hacker

$0 / forever

For side projects and solo analysts

  • Unlimited local rendering
  • 10 published charts
  • 2 database connections
  • 15-minute refresh interval
  • Community support
Install the CLI
Most popular

Team

$29 / editor / month

For product and data teams shipping dashboards

  • Unlimited published charts
  • Unlimited connections
  • 1-minute refresh and alerts
  • Signed embeds and SSO
  • Versioned dashboards in CI
  • Priority support, 4h SLA
Start 14-day trial

Enterprise

Custom

For regulated and air-gapped environments

  • Self-hosted render runners
  • SCIM, audit logs, data residency
  • VPC peering and PrivateLink
  • 99.95% uptime SLA
  • Dedicated solutions engineer
Talk to sales

// loved by query writers

Don't take our word for it

"We deleted a 40-dashboard BI instance and replaced it with a folder of SQL files. Code review for charts sounded weird until we tried it; now it's the only way we work."

MK Maya KowalskiHead of Data, Fjordline

"The comment directive is genius. My queries were already in the repo, so adding charts took one line each. Our exec dashboard shipped in an afternoon."

DR Dele RaheemStaff Engineer, Cobalt AI

"Edge caching alone paid for the Team plan. Our warehouse bill dropped 31% the first month because dashboards stopped hammering BigQuery on every page load."

SL Sara LindqvistAnalytics Lead, Heliodata

// ready when you are

Your next chart is one query away

Install the CLI, connect a database, and publish your first live chart before your coffee cools.

$ npm install -g plotbase