In January I posted a crypto bubble chart I'd built from scratch on Threads. Few people saw it.

Ten months, one redesign and a lot of tests later, it's a library: OrbFlow. It's a bubble chart for the web where the bubbles act like bubbles. They rise in when the chart scrolls into view, float, push each other apart, and pop when you tap one.

Today the beta is on npm, and I'd like you to try to break it.

Try it in two minutes

npm i orbflow@beta

React (18 or 19, works with Next.js):

import { OrbChart } from "orbflow/react"; export default function App() { return ( <div style={{ width: 600, height: 400 }}> <OrbChart data={[ { id: "a", label: "Apples", value: 40 }, { id: "b", label: "Pears", value: 25 }, { id: "c", label: "Plums", value: 10 }, ]} onOrbClick={(orb) => console.log(orb.label)} /> </div> ); } 

Plain JavaScript:

import { OrbChart } from "orbflow"; const chart = new OrbChart("#chart"); chart.setData([ { id: "a", label: "Apples", value: 40 }, { id: "b", label: "Pears", value: 25 }, ]); 

Give the container a size and the chart fills it.

What's in the box

  • Zero runtime dependencies, about 15 kB gzipped
  • Bubble area follows the value, so twice the value really looks twice as big
  • Tap to pop, with droplets, and popped bubbles can come back
  • Keyboard and screen reader support: every bubble is a real button in a hidden list
  • Respects "reduce motion": the chart settles and stays still
  • TypeScript types, ESM, CommonJS, and a CDN script

Why a beta

Once it's called 1.0, the API is a promise, and renaming anything after that breaks your app. So before I make that promise, I want to hear what feels wrong. The things I most want feedback on:

  1. Were the prop and option names what you expected?
  2. Did anything about sizing or layout surprise you?
  3. What data did you try, and did it read well as bubbles?

What's left before v1

  • [ ] Docs and API reference pass
  • [ ] Runnable examples
  • [ ] A speed pass for big charts
  • [ ] Your feedback

Open an issue on GitHub or comment here. Everyone whose feedback changes something gets credited in the v1 release notes.

I'm building the rest in public on Threads and X