The Living Thing / Notebooks :

Javascript user interfaces

Usefulness: 🔧
Novelty: 💡
Uncertainty: 🤪 🤪 🤪
Incompleteness: 🚧 🚧 🚧

C&C javascript visualisations, controllerism, HTML.

Leveraging javascript’s ubiquity and high level of brainshare and enabling tools for people who hate building user interfaces (Building interfaces is like holding political positions in that if you have the skill and motivation to pursue it so much, then you are not the right person to be doing it, having lost all empathy in the process with the people who will beholden to your will.)

And of course visualisation is important here; javascript is the weapon of choice for interactive visualisation.

Note that there is a primitive JS ui built into jupyter, by the way, if you simply wanted to control a scientific browser visualisation. See scientific computation workflow.

Dev tips

Storybook.js is an IDE for web components.

FRP style interfaces

Going deep on React

If you’re going to use javascript you may as well go deep and use a UI system radically redesigned from the ground up to use its strengths. React is the prime contender here. (See also, e.g. the many alternative work-alikes such as riot, which look similar but lighter.) There are certain philosophical entalments to this system, as opposed to the traditional Model-View-Controller one, which are deeper than one would like and attract more pnotificating.

Vue/Angular etc: The 2-way binding ecosystem


Stimulus, jquery et al: the progressive enhancement ecosystem

Performance concerns


And widgets! You can get more widgets using Webcomponents - see HTML.


Geomicons are compact SVG icons.

More complete and widely support but much bloatier are font icons such as fontawesome.

Offline JS apps

See javascript apps?


Is tedious to debug because most desktop machines don’t yet support it.

Multitouch browser patch is one workaround, but I’ve been using touch-emulator, which is very simple so long as you are using a build tool to prevent you from accidentally deploying it in production.