Overview developer documentation of PhosphorJS/JupyterLab

I am looking for some overview documentation of JupyterLabs widget framework provided by PhosphorJS. As you may have noticed from my previous posts, despite of my general knowledge about TypeScript, React, the webpack ecosystem etc., it is very difficult if not impossible for me to do some basic tasks in an extension that I try to develop. And many others seem to suffer from similar problems.

Some of these tasks are: 1) open tab panels south, east, west or north of the main notebook area 2) get a reference to the currently running notebook cell’s html element 3) customize the notebook cells e.g. by highlighting specific code lines 4) understand Phosphors signalling mechanism to have one or more views interact with a controller 5) make Reacts and Phosphor’s VirtualDom cooperate 6) … many more

I don’t expect an answer to these vague descriptions.
What I want to ask is whether there is a JupyterLab+PhosphorJS tutorial (similar to GUI framework tutorials e.g. for Qt of MFC), that explains the general design concept and trivial things like open a panel at a given position, add a button to a panel, let the button emit a signal, perform some action in another panel when the signal is received, etc.

I am aware of http://phosphorjs.github.io/docs.html, which only helps searching to correct methods once I know HOW to do what I want.
I have also read https://jupyterlab.readthedocs.io/en/stable/developer/repo.html, https://jupyterlab.readthedocs.io/en/stable/developer/extension_dev.html and the remaining “developer guide”, which again helps to improve your knowledge, but is not helpful to acquire the necessary INITIAL knowledge.

I’d like to know whether such “Getting Started” guide exists, if you provide advanced training (beyond the “Extension Developer Guide” level) for interested JuypterLab developers, or if there are plans to improve the documentation significantly within the next year or so. If not, I might have to reinvent some of JupyterLabs capabilities and base my developments on ExtJS, so that I can start being productive again.


There is not a single guide at the level you suggest. We do plan to significantly improve documentation in the coming year (and hope people in the community will help with this!). I suggest opening an issue in the JupyterLab repo with a specific question. Many questions have been answered like this, so the issues there are a great reference.