ryrobes / rvbbit

Reactive Data Board & Visual Flow Platform
249 stars 11 forks source link

RⱯBBIT DYNAMIC DATASCAPES

Reactive Data Board & Visual Flow Platform

composability:

The art of creating complex systems from simple, reusable parts.

feedback loop:

A cycle where output influences input, creating a self-reinforcing system.

alt text

but first, a brief interlude...

RVBBIT Dynamic Datascapes

"If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea." — Antoine de Saint-Exupéry

As a long-time dashboard builder, data engineer, and UI hacker - I've always wanted something in-between Tableau & building bespoke web data products to ship answers to my users. The tools were too rigid at times, and building everything from scratch can be tiresome. The eternal push/pull of DE and SWE approaches, as many who work in BI can attest to. How could I have the flexibility & re-usability of code, but the compositional freedom & direct manipulation of a builder tool?

I didn't want my creativity limited by tool nor timeline.

To paraphrase Alan Kay, "Simple things should be simple, complex things should be possible". I wanted 'beautiful' to be possible as well.

A data platform should feel more like using a game engine than using an "app".

So I spent the last 4 years building prototypes and trying to figure out I wanted in a tool like this - how it could work, and what actually MAKES SENSE, while also pushing the limits a bit.

Then 14+ months ago, I quit my job and set out to build it for real.

Also, I wanted a data board tool that FELT & LOOKED like it was from the future. Not from 1997 or 2004... It's the future, damnit. Where is all the glorious cyberpunk UI? I wanted to be able to make things for "Real work", but maybe also feel like you are in a hacker movie. Hey, I'm a simple man.

Ok, enough with all the nonsense. WTF is it?

A highly dynamic & flexible platform for composing interactive data boards, a data workspace canvas, & flow-based programming system

You could even call it a "non-linear anti-notebook that puts composition and presentation front & center rather than an afterthought". Heresy!
[Notebook enjoyers scroll their procedural top-to-bottom rectangular fists up and down at me angrily]

Did you say "Data boards"? Yes. "Dashboard" is very 1990s. More Minority Report, less Office Space. Baby steps.

RVBBIT also draws significant inspiration from systems like Smalltalk, HyperCard, & the endless trail of breadcrumbs left by Bret Victor. Like Smalltalk, it embraces the idea of a fully malleable, live programming environment where everything is an object and can be inspected and modified. From HyperCard, the vision of an intuitive, visual programming paradigm that empowers users to create interactive, linked information systems. Yet hyper focused on building data products such as dashboards, data science views, interactive explorations, & unparalleled reactivity.

Inspired by the future, borrows from the past - as all good things should. Oh, and I love Clojure and SQL, so get ready for that.

"Low bar, High ceiling"

The skill level of users varies, but we all still need to get sh*t done. Answers need to be found, and data value needs to be delivered to the people.

RVBBIT helps bridge these gaps in it's overall approach to building - it helps you create in board strokes by generating "code" (SQL, view DSL, Clojure, etc) in it's cards from simple drag and drop operations. The user can then modify this working code, or use other UI like value scrubbers to mutate and see the changes in a quick feedback loop cycle - this builds understanding. No hidden "magic", no step-by-step 'wizards' that create un-editable artifacts or configurations that are opaque.

"Interactive data tools are feedback loop factories"

Ladder of Abstraction

In terms of Bret Victor's 'ladder of abstraction' concept:

Level Description
Low Context-aware drag & drop creates basic blocks by writing queries and view DSL (query, visualize, filter, link)
Medium Blocks can be tweaked to fit needs (small changes, CSS, options, scrubbers)
High Raw code to produce DSL or new features added wholesale via kits/solvers/flows

This allows users to build up mastery as all components work together - a DnD created SQL rowset can control a bespoke REPL code block and vice versa. They all speak the same core language = reactive parameters.

This also has a 3rd order effect - due to RVBBIT's open systems - advanced users can extend the functionality of the platform - delivering new packaged behavior & bespoke artifacts in their own creations.

Clojure based

Data is Code, Code is Data.

While RVBBIT is very much a "Clojure platform" and a full-blown nREPL client, knowing Clojure is not a requirement. You can build an entire dashboard with only drag & drop and a SQL database - but its full flexibility is unlocked with some Clojure knowledge and some creative thinking. Shape rotators welcome.

SQL Specific Features


"A Game Engine for Data"


Basic SQL ops

Basic SQL ▶

Basic SQL Viz Ops

Basic SQL + Viz ▶

The Data Desktop

The Canvas

Recursive Composition

Card History

A visual undo log of all card changes and their code diffs. Easy to scrub between old versions or even drag them out as new cards. Works for views, code, and queries.

Clojure REPL Specific Features


Arbitrary REPL, server-generated interactive views

Reactive Parameters (values) also allow cross client data access

Configurable Card "Runners"

Besides the built-in runners of SQL queries and Views (UI) - the combination of arbitrary parametrized code + an integrated Flow system enables all kinds of functionality that can be packaged up as a new runners and available for users to build with. Essentially creating new Card types with new functionality.


as a Clojure REPL client

as a Clojure REPL client - with SQL interaction ▶

Custom Card Runners

Custom Card Runners - run anything ▶

Reactive Parameters

Snapshots

Metrics & KPIs

You could say that RVBBIT is really a "Reaction Engine" with 'useful surfaces'.

Flows


Signals and Solvers - Reactivity

Signals and Solvers - Reactivity ▶

Flows - Reactivity and Feedback loops

Flows - Reactivity and Feedback loops ▶

Human First, Machine Friendly

Extendable and Hackable

"Specializable"


Using AI to mutate the canvas

Using AI to mutate the canvas ▶

User Space Kits and Plug-ins

User Space Kits and Plug-ins ▶

Getting Started


Video 1 Title

Getting Started with RVBBIT ▶

User Space Kits and Plug-ins

Long-form Getting Started & Overview ▶

Caveats

Copyright © 2024 Ryan Robitaille