Skip to content
One URL. No SDK.

Numbers you already have,
drawn where people look.

Make a chart, get a URL, and send it numbers with one line of curl. No client library, no agent, no auth header to remember. The picture is an SVG — put it in a README, a status page, a pull request, a Slack unfurl.

3 charts of 256 samples, free · no card

api p95 latency line
28 / 256 samples
ExampleExample — line chart of 28 readings, latest 112 ms181112112 ms
What put it there
curl -fsS https://sparkline.ivashkin.dev/i/KEY?latency=112
How it goes

About a minute, and then never again.

  1. 01

    Make a chart

    Name it, pick a shape and two colors. You get a public address for the picture and a secret key for the data — separate, so whoever can see a chart cannot write to it.

  2. 02

    Send it a number

    From a deploy script, a cron line, a CI step, a health check. Query string, form body or JSON — all three arrive the same way.

    curl -fsS $SPARKLINE_URL?latency=42
  3. 03

    Put it somewhere

    The chart is an SVG at its own URL. Anywhere an image goes, it goes — and it is current every time somebody loads the page.

    ![latency](https://sparkline.ivashkin.dev/g/k3n8pq7wv2xa.svg)
Four shapes

Whichever one tells the truth.

Bars start at zero and lines do not, because a bar chart floating above its own baseline is a lie and a line chart pinned to zero is a flat one. Nothing here smooths a curve through your data.

line · area

over time
ExampleExample — line chart of 28 readings, latest 112 ms

A value as it moves. Response times, queue depth, the size of a build.

bars

counted
ExampleExample — bars chart of 14 readings, latest 14

One bar per sample, read against zero. Deploys a day, errors an hour, sign-ups a week.

donut

composition
ExampleExample — donut chart of 4 series over 1 samples: api, web, worker, cron885api47%web30%worker16%cron7%

What every series reads now, as a share of what they add up to — in colors stepped between the two you picked, so a donut still looks like yours rather than like everybody's. One series on its own is gauged against its target.

A window, not an archive

Up to 256 samples a chart free, 4096 on Premium, and each chart picks its own number from there. Nothing to prune: the one past the end pushes the first off in the same transaction.

Two codes, two jobs

The address in the picture is public and read-only. The key that writes is separate, and rotating it takes one click — so a key pasted into the wrong Slack channel is a minute's problem.

No header, no token dance

The secret is in the path. That is a deliberate trade: it fits on one line of a Makefile, and a chart of build times is not worth an OAuth flow.

SVG, JSON, or a page

Add .svg for the picture, .json for the numbers, or neither for a page you can send somebody.

Sized where it is used

?w=&h= on the image URL. A README table wants something different from a wall display, and neither should need a second chart.

Nothing to install

No daemon on your box, no library in your lockfile, no SDK to keep up to date. If it has curl, it can draw.

What it costs

Two plans, and three numbers between them.

Free

No card
$0 / forever
Charts
3
Samples a chart
256
Series a chart
3

Premium

16× the history
$3 / month
Charts
100
Samples a chart
4096
Series a chart
12

You already print the number. Draw it.

Sign up, make a chart, paste one line into whatever already knows the answer.

Careful

Are you sure?