The frustration
After yet another telecom dashboard project hit the wall on D3 + custom force layouts, we started prototyping a "graph SDK we would actually want to use."
TopoKit is a TypeScript-native graph visualization SDK built by engineers who got tired of wrestling with D3, fighting bundle size, and rewriting force layouts from scratch on every project.
Our mission
Network topologies, dependency trees, org charts, social graphs — they all share the same fundamental shapes, yet every project rebuilds the same primitives. TopoKit packages those primitives into a clean, fast, framework-agnostic SDK so teams can focus on the data and the domain, not the rendering pipeline.
Six principles that drive every API decision, every dependency we don't add, every line of code we ship.
No npm-install roulette. TopoKit ships as a single, self-contained SDK with nothing pulled from the registry at runtime.
60fps with 20,000 nodes is the goal — not the ceiling. Every API decision is measured against frame time.
Written in TypeScript, shipped with full type definitions. Autocompletion that actually helps you build.
We pick boring tech — Canvas2D over WebGL, vanilla JS core, plain CSS — so your bundle stays small and your bugs stay rare.
If you cannot find it in the docs, that is a bug. Every API gets a code example, every example runs.
Read the source, fork it, patch it. BSL 1.1 converts to Apache 2.0 in 2030 — fully open source, forever.
A short timeline of TopoKit, from frustration to public beta.
After yet another telecom dashboard project hit the wall on D3 + custom force layouts, we started prototyping a "graph SDK we would actually want to use."
TopoKit's core graph engine and force layout shipped to a handful of design partners. The first production deployment ran on 4,000 fiber nodes.
TopoKit 0.4 launched publicly with seven layout algorithms, canvas LOD rendering, edge bundling, and a React package. The journey continues.
Whether you're prototyping or shipping to thousands, TopoKit is designed to disappear into your stack. Start with the docs, or talk to us about your use case.