Robotap

Publish data as interactive pages, APIs and files, from definitions. A query and a page of plain HTML become an interactive, access-controlled web page, a CSV and an API, from the data you already have.

Open source (MIT). One small Node server. Version 0.x: the shape of the definitions is versioned and migrated, the code around it still changes.

Try the demo Source on GitHub Packages on npm

The stretch between a database and a chart

There are excellent places to keep data: PostgreSQL, MongoDB, a folder of Parquet files that DuckDB reads in a blink. There are excellent ways to draw it: d3, Observable Plot, maps. Between them is a stretch nobody owns, and everybody who gets data from the one to the other meets the same list: which query runs where, who may see what, what happens when two people open the page at once, how a value in the address becomes a value in a query without becoming an attack, how a click on a chart narrows the table next to it, how to cache, to print, to embed, to put on a phone, to hand to a spreadsheet.

Each project writes that glue again, and a little worse each time. Robotap is that stretch, written once.

How it works

A dataset is a query: where rows come from and how they are shaped. A report says which datasets a page has, which choices a visitor can make and who may open it. A layout is a page of plain HTML5 with a slot for each dataset. A project is a folder of JSON and HTML, and a change shows on the next reload.

<div data-ds="sales" data-layout="ds/datatable"></div>

The person who knows the data writes the query; the person who knows the look writes HTML and CSS. There is no build step and no framework to learn. Charts and maps are plain JavaScript modules a project adds (a zoomable d3 sunburst is one module and one layout of the demo, with no change to the framework). DuckDB reads CSV and Parquet inside the server, so a file of nine million rows needs no database to host.

The same definition is also a CSV, a JSON endpoint, a print version and a block that embeds in any other web page, under the same access rules.

What it is for

What it is not

It is not a business-intelligence tool: no drag and drop, no semantic layer, no ad-hoc exploration by people who do not write queries. It is for people who would rather write a definition than click a canvas, and who want the result reviewed, versioned and tested like code. It is not multi-tenant or a hosted service, it has no sign-in with a directory (sign-in is a signed cookie and a user table), and one process is one core: past that, a cache in front or more instances is the answer.

Work with it

Robotap is the software; hosting data solutions and designing data models and reports is the work around it. If you have data that should reach people (a research project, an admin view of a site, a story with a chart), write to hello@robotap.dev.