Sharing and Publishing Notebooks

This section covers the different ways to share and publish Notebooks.

Sharing .ipynb files

Notebooks are JSON files with the extension .ipynb. These .ipynb files can be opened on any machine with Jupyter installed. The environment used in the Notebook (e.g., specific libraries or packages used in the code) must match the environment of the running Notebook server.

Generating static documents from Notebooks

Notebooks can be converted from .ipynb to other static formats, such as HTML, LaTeX, PDF, Markdown, reStructured Text, and others. This enables:

  • presentation of information in familiar formats, such as PDF.
  • publishing of research using LaTeX and opens the door for embedding notebooks in papers.
  • collaboration with others who may not use the notebook in their work.
  • sharing contents with many people via the web using HTML.

The simplest way to do this is to click on File > Download as from the Notebook interface. For programmatic conversion of notebooks, and for more control over the layout and appearance, you may want to use the nbconvert command-line utility.

Sharing Notebooks online

Notebooks can be published online in many ways:

  • In blogs/websites as HTML format (this website is written entirely as Jupyter Notebooks!)
  • On GitHub, which renders Notebooks automatically (example)
  • On nbviewer, a website which renders Notebooks from URLs (example)


Binder is a service that allows users to share runnable Notebooks. Binder allows you to specify the environment (libraries, packages, etc.,) required for a Notebook to run, and makes this environment available to others through the browser. These Notebooks can be run by others on a public cluster (provided by Binder itself), or a private one that you can configure for use with Binder.