WebIO acts as a small Julian bridge between browser-based UIs to Julia such as IJulia, Atom, Blink and Mux, and packages that wish to output rich, interactive widgets. This means graphics packages don't have to depend on IJulia or Atom or Blink etc to create widgets. Instead they only depend on WebIO and use its abstractions. Widgets written with WebIO once will work on all the above interfaces. Some features are: A DSL for creating HTML elements A Julia-to-JavaScript transpiler transparent and easy communication with observable refs Ability to reliably load arbitrary JS libraries from the web / serve them from disk with correct ordering of code execution. (This has plagued many a package so far) Flexible. Not tied into any javascript framework, no opinions. Allows you to execute arbitrary JS on your widgets. Allows mixing and mashing widgets and concepts from different packages seamlessly, resulting in arbitrarily granular separation of concerns. Enables an ecosystem of UI packages, as opposed to Escher's monolithic codebase.