Analytics/Limn

About
Limn is a GUI framework for constructing beautiful visualizations without need of programming skills. The framework is used to produce visualizations for the WMF Monthly Reportcard and the Gerrit Stats tool. Play around with it!


 * Source: https://github.com/wikimedia/limn
 * Readme: https://github.com/wikimedia/limn#readme
 * Issue Tracker: https://github.com/wikimedia/limn/issues
 * Documentation: https://github.com/wikimedia/limn/wiki

Features

 * Graphical interface to create and customize visualizations
 * Beautiful results, easy to use
 * Easily added to any existing project as either a single script tag, or via node middleware
 * Works with a simple data format that is agnostic to the backing data-source

Rationale
There are a great many JavaScript graphing libraries, and Limn isn't one: if you're a programmer looking to stick some graphs on your site, you already have a ton of options (ps. use d3.js).

But what about your non-programmers? They don't have many options: they email somebody, maybe try some shoddy web tools, and eventually reach for Excel. Ew. Worse, the time and energy expended in getting a single chart is so great that they're seriously discouraged from playing around. In the age of big data, this is a big problem. Exploration is a huge component of success. You need to iterate. You need to be open to inspiration. If you think you know what you're looking for, you're probably wrong.

This is the niche Limn aims to fill: a drop-in component that enables self-service visualizations for your team.

The "drop-in" part is important: we want it to be easy for programmers to enable these features in existing applications with minimal changes. If you already have a datasource that provides data in CSV or JSON format (be it files on disk or a REST API) you're mostly good to go. Limn can run entirely as a client-side application simply by including `limn.js`, or as node.js middleware using either Connect or Express, in which case graphs can be persisted on disk. The only real work is to configure Limn to know about your datasources, though in the future we aim for the client to be able introspect this information from the data.