Tonic is now RunKit, a part of Stripe

by Francisco Tolmasky
Share on facebook or twitter

For the past year we've been taking a radical approach to development tools here at Tonic. Instead of treating IDEs, frameworks, and even languages as the fundamental building blocks for development, we decided to explore what it would mean to attack these problems at the system level. Could we make progress on some long standing development headaches by essentially beginning to build a developer OS?

We started by buidling module-fs, a virtual filesystem capable of representing the entire state of npm at any particular microsecond. With module-fs we could make every version of the over 300,000 packages on npm available instantly. With truly immediate and frictionless access to any package, you could begin to think of npm as the global standard library, as essential to development tomorrow as built-in libraries are today.

Similarly, we attacked the problem of time traveling debugging not at the application level, but directly on the OS by using the bleeding edge virtualization tools of CRIU on top of Docker. We knew that for a feature like this to truly be usable outside of simple demos, it would have to match real-world use by allowing developers to rewind any mistake, including forking a process or modifying the filesystem.

We've exposed these core features in a number of experimental products. Notebooks are our take on how a REPL can work in such an environment: quickly and safely prototype and share code with truly zero configuration. Endpoints re-imagined deployment by doing away with it completely: the code is simply always live, no longer requiring time-consuming installation thanks to module-fs. And finally, embed proposed that all online documentation and examples could be live by allowing any webpage to leverage these technologies:

A few months ago, we started talking to Patrick Collison, Stripe’s CEO, about our vision of building the future of development tools. I was already aware that Stripe had a history of investing in development, but Patrick made clear that lowering the bar to development is fundamentally aligned with Stripe’s interest in increasing the leverage of developers around the world.

From these discussions, it became increasingly obvious that it made sense for us to work together. Stripe decided to take a bet on our vision and our team, and I’m excited to announce that we are now officially part of the Stripe family. We will continue to operate independently, working from our office in the Haight in San Francisco, and we will also be changing our name to something that better encapsulates our vision: RunKit.

RunKit represents what we are truly building: a unique new platform to enable tomorrow's development tools. In the coming weeks we'll be releasing a number exciting updates that leverage our technologies, as well as better explanations of what's going on under the hood. We are really looking forward to the things we can build by working with Stripe, and can't wait to show you what we're up to. Try it out yourself:

const React = require("react"); const { renderToString } = require("react-dom/server"); const OneMoreThing = require("@runkit/runkit/one-more-thing/4.0.0"); renderToString(<OneMoreThing/>);

What is RunKit?

  • RunKit is an interactive playground for running Node.js in the cloud.
  • RunKit offers serverless functions with zero deploy time — prototype code changes in real time!
  • RunKit can be embedded in your tutorials and docs to make them interactive as seen on,, and
Follow RunKit Blog updates with the RSS Feed
Follow @runkitdev on Twitter for the latest updates from RunKit
© 2015–2018 Playground Theory, Inc.