What about having different ways of laying out reactive cells onto the page? The document-like layout of a notebook is fantastic, but in some cases I think it would be better to be able to displace cells freely in a 2D canvas, especially for UI-related cells. It could be something similar to visual programming environments such as VVVV or Nodebox, but without the explicit ports and connections, thanks to the reactive nature of Observable.
Let’s suppose you have many parameters to control, and a graphical representation that’s affected by all of them. Here is a simple example, but it’s easy to imagine something way bigger, with more controls and possibly more than one view. Currently, if I’m not wrong, you only have two options: either to scroll up and down whenever you alter a parameter to see how the graphics changed; or to create a more compact custom control that encompasses all the parameters. The first option is frustrating, while the second forces you to lose the modularity of cells and to encapsulate all parameter values in a single reactive object.
I think that such a use case would be better addressed by making it possible to freely lay out cells onto a 2D canvas, or by organizing them into a grid or a flex layout in a sort of dashboard. In my opinion, a future version of Observable featuring something like this would be a strong competitor in the field of visual programming environments and would also be very useful for prototyping dashboards.
What do you think?