Stop Filing Bugs, File a Container!

by Francisco Tolmasky and Randy Luecke
Share on facebook or twitter

RunKit notebooks are a great way to file bugs on GitHub. Since RunKit automatically packages your code with its entire environment in a Docker container, anyone can clone your bug and start investigating it live in seconds, without any setup or installation. Best of all, the bug will be completely reproducible and avoid the dreaded "works on my machine". Today we're excited to be improving this experience even further with a completely revamped UI for filing and analyzing issues on Node.js:

A screenshot of the new stack trace viewer of RunKit, specifically showing code from a stack frame inline in the viewer.
View code inline right in the stack frames

Our initial focus was to make stack traces in Node.js significantly easier to interpret and understand. RunKit interacts directly with the V8 data to provide a much more detailed view than any other implementation we've seen. One example is how RunKit dramatically streamlines the experience of navigating the stack trace by inlining the offending code right in the frame, as well as providing documentation for many of Node's built-in functions:

An animation showing the documentation viewer in the RunKit stack trace viewer
View documentation from common functions right in the stack trace

But we also focused on a lot of little details, like swapping in canonical names for functions whenever we can in order to avoid the more confusing inferred V8 names that sometimes show up. Another thing you'll notice is that we now show you the version of the package you're using immediately as you require it. This makes it so that all the dependency information in your notebook is immediately digestable with a glance. It's a lot of fun when coding, but even more useful when looking at someone's else's code.

An animation showing the version number of a requried package popping in inline in the require code as you type.
RunKit shows you the package version right in your code

Together, all these features result in a bug report that surfaces all the pertinent background for a bug with no extra work for the user. Instead of relying on templates to remind people to include all this, RunKit just knows it by default. That's because with RunKit you're not just filing a bug, you're filing an entire container, enabling the coolest feature of all: the ability to run it.

How To Get Started

The easiest way to get started using RunKit to file bugs is to Sign Up and then head on over to a package's corresponding RunKit page (such as https://runkit.com/npm/lodash). You can then paste the generated link on the package's bug tracker. If you're a package maintainer and want a more customized experience, you can use our API to embed RunKit right on your page.

Try It Out

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 lodash.com, expressjs.com, and stripe.com.
Follow RunKit Blog updates with the RSS Feed
Follow @runkitdev on Twitter for the latest updates from RunKit
© 2015–2018 Playground Theory, Inc.