Lightning is a framework for interactive data visualization, including a server, visualizations, and client libraries.

The Lightning server provides API-based access to reproducible, web-based visualizations. It can be deployed in many ways, including Heroku, Docker, a public server, a local app for OS X — and even a server-less version well-suited to notebooks like Jupyter. It comes bundled with a core set of visualizations, but is built to support custom ones.

Each visualization in Lightning is an npm module. This makes it easy to create new custom visualizations using all of your favorite npm libraries. If you design a custom visualization and publish it to npm, anyone can install it into their server. And if you've made something general-purpose, we can add it to the core set.

Lightning can expose a single visualization to all the languages of data science. Client libraries are available in multiple languages, including python, scala, javascript, and rstats, with more coming soon. If you want to contribute a client for your favorite language, let us know via twitter or our chatroom on gitter.

To see examples of the types of visualizations that Lightning can produce, check out the examples in the sidebar. To learn how to visualize your own data with Lightning, continue reading here.

Getting started

We've designed many ways to use Lightning, to support a variety of use cases. The options fall into three categories: use a prebuilt server, run your own server, or use locally without a server. Here we introduce the approaches; see individual sections below for more details.

The prebuilt servers are the easiest way to get started with Lightning. You can use our public server to generate and share any of the core Lightning visualization types, or download the standalone app, which is perfect for doing local data analysis.

Deploying your own server provides the most control and flexibility. You'll be able to view and edit visualizations, install and manage visualization types, and prototype new ones. You can use a one-click deployment to Heroku, run from our official Docker image, or install and run locally using node and npm

You can also use Lightning without running a server at all through our client libraries (currently only Python). Just by installing the client you have access to Lightning's custom visualizations. This approach is great for data science applications, especially inside of notebooks, but has a few limitations. See the section on the Python client for more.