Charts that look like someone gave a damn.

A consistent data visualization system for your product. One grammar unites designers, developers, and AI agents – with six tailored themes, rendered everywhere.

546 charts rendered

Mail
FromSarah Chen <sarah@acme.com>
ToLeadership Team
SubjectQ4 Revenue Summary

Hi team,

Quarterly revenue breakdown is below. Americas is up 31% QoQ – strongest region this year.

Full deck attached. Let’s discuss Thursday.

Sarah

Message sent

1 chart attached

Inbox
Alex Kim11:08 AM

Re: Q4 Revenue Summary

This chart is gorgeous – how did you get it into the email? It actually renders in Outlook…

Marcus Wei11:05 AM

Re: Q4 Revenue Summary

Can you send the APAC breakdown too? Want to include it in the board deck on Thursday…

Jamie Chen9:30 AM

Quick question about szum's API

Tried the barY example from the docs, worked first try. How do I add a second series…

Design TeamYesterday

Chart themes for the rebrand

The editorial theme matches our new brand guidelines perfectly. Can we customize the…

The best chart library is a URL.

A JSON config in, an image out. No install, no runtime, no client-side JavaScript.

Edit me!

Migrating from Chart.js? Convert configs automatically.

One chart. Every surface.

Same config, same output. Figma, Slack, Notion, or your app.

Figma
Scatter Plot

Interactive embeds coming soon.

Six themes. Zero compromises.

Not twenty that blur together. Every theme is a deliberate design choice – typography, color palette, spacing, grid. Switch one property, get a completely different chart.

modern
editorial
dark
neon
pastel
technical

Nine marks. Infinite charts.

Every chart is a composition of simple marks. Layer them freely.

barY
barX
line
dot
areaY
areaX
text
ruleX
ruleY

Ready for AI agents.

Obvious field names. Pure JSON. No enums to memorize. Point your agent at the schema and get correct charts on the first call.

Show me average monthly temperatures for Lisbon and Berlin as a line chart with dots.

{
  "version": "2026-03-20",
  "title": "Monthly Temperature",
  "subtitle": "Average highs by city, 2025 (°C)",
  "theme": "modern",
  "marks": [
    { "type": "line", "stroke": "city" },
    { "type": "dot", "fill": "city", "r": 4 }
  ],
  "data": [...]
}

JSON Schema · llms.txt · MCP Server

Pay for renders, not seats.

Start free. Upgrade when your product does.

Free

$0

For experimenting

Renders1,337 / mo
Overage
OutputPNG, SVG
API keys1 key
MCP server
Custom themes
Start for free

Pro

$29/mo

For real products

Renders100,000 included
Overage$1 / 5,000
OutputPNG, SVG
API keys10 keys
MCP server
Custom themes
Start for free

GET requests work without an account – up to 200 renders per IP address per month.

Need a custom SLA or volume pricing? Let’s talk.

Your charts should look as good as everything else you ship.