We all love our CV/blog websites hosted on GitHub Pages. We also love Jupyter notebooks for revolting the look and feel of daily data processing. Now imagine that you can put Jupyter notebook right into your blog to showcase something without the server side? Mozilla makes it possible with their awesome Iodide. Actually, there is a bunch of new names here to distinguish:

  • Iodide is a client-server platform, API and UI with a server side, which authenticates you and stores the data
  • Pyodide is a Python interpreter along with Python modules working entirely in your client web browser by means of WebAssembly
  • What we present here is Iodide minus server side, but still with its rich UI and Pyodide (Pyodide alone without UI can only output into browser console); let’s call it Iodide static client

alt text

I’ve put together a sample GitHub repo with Jekyll-operated Iodide static client published here. After you press ⏩ button, the Python interpreter is being downloaded, followed by imported modules - matplotlib in our case. Finally, the notebook is rendered into Report Preview window, which can also be viewed as a whitepaper (View as report). So happy embedding interactive data science into your blogs!

Given that Python runs entirely in your browser, it’s doing much better than you have expected, right? Well, it’s definitely doing good to some extent, unless you try to program sockets in Python in there (that’s why it feels slightly impractical atm). SciPy is reportedly partially working.

Anyway, turns out Mozilla is the new star of Data Science! Or wait: actually they still need to put LaTeX into WebAssembly as well.