The 7 ways to run Jupyter Notebook online
Setting up a local environment to run Jupyter Notebook can be cumbersome. You need to install Python and tons of packages to make it works. The convenient alternative can be running notebooks in the cloud. There are many services that allow you to create, edit and run Python notebooks with premade data science environment. I would like to show you some popular services that offer Jupyter Notebooks online. What is more, I will also show you two new alternative approaches for running notebooks online.
Google Colaboratory
The Google Colaboratory is also known as Google Colab. It is a service provided by Google. It offers free and paid tiers (pricing website). The notebooks from Google Colab are saved in Google Drive. You can also easily access files from Google Drive. Real-time collaboration is not available. The Google Colab implementation is proprietary. It has a slightly different user interface than the original Jupyter Notebook. You can install your own packages, but after installation, you need to restart a kernel. The notebook's maximum computational run is 12 hours on the free plan. If longer executions are needed, the paid plan should be considered.
There is access to GPUs and TPUs on the free plan. The type of available devices can vary depending on time and usage. There is internet access in the notebooks. Notebooks can be kept private or public. The link to Colab FAQ if you would like to check more details.
It is one of the most popular online Jupyter notebook because of its generous free plan. You don't need to signup if you already have an email account on Google.
MyBinder
It is an online service for running notebooks that are available from a public code repository (for example, your notebook needs to be in the public GitHub repo). The notebook can access only files that are already available online. The launch of the notebook might be slow. You can define your own environment, but you need to define the packages in requirements.txt
or environment.yml
file. The environment will be created for you on notebook starts. The MyBinder is a good solution for researchers who want to share their findings with others.
CoCalc
The CoCalc notebook is provided by SageMath company. It offers the same look and feels as the original Jupyter Notebook. Its implementation is open-source. The service provides free and paid plans. The free plans are limited. You can't install custom packages and there is no internet access from the notebook. Real-time collaboration is available. What is more, there are some great features available as chat or grading (very useful for teachers).
CoCalc provides kernels for Python, Sage, R, Octave, and many more languages. There is no access to GPU in the service. The service can be self-hosted after purchasing the commercial license.
Kaggle Kernels
The Kaggle.com is a website that hosts machine learning competitions. It is owned by Google. It provides a service for creating and running Python notebooks online. The service is free to use. The user needs to verify the account to get access to all features (like internet access). The available machine can be with GPU support but for a limited time. User can create private and public notebooks. Public notebooks are great for sharing on Kaggle with other competitors. The notebook user interface is different from the original Jupyter Notebook. The available environment comes with tons of already preinstalled data science packages. Additionally, there is an option to install custom packages - it can be done in the cell running the command with !
(example !pip install mljar-supervised
).
This is a great solution if you want to learn machine learning and compete with others. The Kaggle community is very welcoming.
Deepnote
The Deepnote is a startup working on an online notebook. It is backed by Y-Combinator and well funded. Their user interface is different from the original Jupyter Notebook but it looks really impressive (it's my opinion). They provide free and paid plans. The free plan has 750 hours of computing. What is more, you can get access to paid plans for free if you are a student or a teacher. You can run notebooks on different size machines with GPU support. The Deepnote offers real-time collaboration on notebooks.
You can have private and public notebooks. They have many custom features like scheduling, converting notebook to application, visual chart creator to name a few. They provide integrations with GitHub, PostgreSQL, BigQuery, Redshift, and others.
The Deepnote might be a good solution if you are looking for a cloud-based solution with a private workspace.
JupyterLite
JupyterLite is an online notebook that runs entirely in the web browser. What? Yes, it connects to the Python kernel that is compiled to WebAssembly and runs in the browser. You don't need to connect to the backend machine with a Python interpreter. Everything is running in your web browser. You can try it online at this address https://jupyter.org/try-jupyter/lab/.
It is a great solution if you want to play with Python or do a very simple demo, for example, visualization. If you are planning to do some heavy lifting with Python, it won't be possible with JupyterLite. Installing additional packages might be a problem because not all packages have been compiled to WebAssembly.
It might be a great solution for teachers and students, but they should be aware that they are running in the environment compiled to WebAssembly.
Mercury
If you would like to share your notebook online with non-coders, the Mercury is a solution for you. Wait, share a Python notebook with non-technical users? Yes! The Mercury turns the Python notebook into an interactive web application. It will generate the widgets for your notebook. Your friends can tweak widgets values, click Run, and your notebook will be executed with new parameters. You can easily hide the notebook code.
It is a perfect solution if you would like to share the notebook with non-programmers. Additionally, Mercury can convert a notebook into slides, a dashboard, or a report. You can learn more on the website and documentation.
Summary
There are many ways to run a Jupyter notebook online and create amazing Python code to share with others. If you are looking for a free machine with GPU, then you should try Google Colaboratory or Kaggle Kernels. If you are looking for online environment for your Data Science project and would like to share it with your team, then CoCalc, Noteable and Deepnote might be a good start. The MyBinder and JupyterLite websites might be great solutions for students and teachers. If you are looking for an online tool for sharing notebooks with non-coders, then Mercury is for you.