Grahamdumpleton iconGrahamdumpletonSep 17, 2026 ~1 min source read

Graham Dumpleton: Introducing jupyterlab-workshop

When I released the 24 wrapture workshops last week, they ran in JupyterLab on mybinder with the instructions in a side panel, and I said at the end of that post that the panel deserved a post of its own. The panel is jupyterlab-workshop, a JupyterLab extension I wrote the week before.

Graham Dumpleton: Introducing jupyterlab-workshop

Share this story

Send the public story page.

Useful takeaways from this story.

When I released the 24 wrapture workshops last week, they ran in JupyterLab on mybinder with the instructions in a side panel, and I said at the end of that post that the panel deserved a post of its own.

The panel is jupyterlab-workshop, a JupyterLab extension I wrote the week before.

The workshops were the reason it exists, and the first thing built with it.

Building the complete brief

The page is ready to read now. The fuller skim-friendly version will appear here automatically.

The useful part

When I released the 24 wrapture workshops last week, they ran in JupyterLab on mybinder with the instructions in a side panel, and I said at the end of that post that the panel deserved a post of its own. The panel is jupyterlab-workshop, a JupyterLab extension I wrote the week before. The workshops were the reason it exists, and the first thing built with it.

How it works

  • If you know I have spent years working on Educates and are wondering why I did not simply use that, there is a reason, and I come to it near the end.
  • The workshop can check what the learner has done, ask them questions, and hold a page until the checks pass.
  • A workshop is a directory of Markdown files and a manifest, and it runs wherever JupyterLab runs.
  • Why a notebook isn't a workshop JupyterLab is already a natural place to teach, and the usual way to do it is a notebook.
  • Each step on a page is a clickable action that does something real in the JupyterLab session beside it, whether that is running a command in a terminal, writing a file, creating a notebook and running its...

What to take from it

The first problem is that the learner reads down the page pressing Shift+Enter, or picks Run All, and finishes having done nothing. You write paragraphs of explanation with code cells between them and hand it to the learner to run.

Details worth keeping

The extension has documentation on ReadTheDocs and is on PyPI. The instructions live in a sidebar panel, one page at a time. That works up to a point, and then it doesn't.

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app