Deepnote: a Collaborative Framework for Your Python Notebooks
Tags: datascience, python, machinelearning, framework
Published: 2021-11-12 15:59:47

In my wandering around the various data science tools and frameworks, I discovered Deepnote, an online framework that allows you to create and run notebooks in Python.

Compared to the more famous Jupyterlab and Colab frameworks, Deepnote allows you to write Python notebooks collaboratively and in real time. Your collaborator may even comment your code!
Deepnote can be easily integrated with the most popular cloud services, such as Google Drive and Amazon S3, as well as the most popular databases, such as PostgresSQL and MongoDB.

In addition, projects can be integrated with Github and published over the Web, since Deepnote provides each user with a dedicated Web page, which can be used as a portfolio. Finally, a great community has been built around Deepnote, with currently more of 2,000 members.

In this article I will give an overview of the Deepnote features and a practical use-case, which shows some potentialities of the framework.

## 1 Overview of Deepnote
When you land to the Deepnote homepage, you can register for a new account, either using your Github account or through your Google Account. Once registered, you can start a new project, simply by clicking the New Project button:

A new unique Virtual Machine is associated to your project, which is unique for all the collaborators. This means that if you invite someone to collaborate with you to your project, they will see the same environment as yours.

The main page for a project is a dashboard, where the main page is similar to other popular notebooks, in the sense that it provides the classical cell-environment, where you can write and run blocks of code or blocks of texts.

The novelty of Deepnote compared to other notebooks is the presence of some tools, which facilitate the initialization and integration of the project with other systems.

The provided tools include:
* Notebooks & Files — the filesystem directory, which permits to navigate through the project files easily, as well as to create new files or upload them both from local filesystem and from URL.
* Environment — the parameters associated to the project virtual machine. In this section, you can configure the hardware parameters, the Python version and the initialization scripts for the environment.
* Integrations — the space where you can easily configure the integration of the project with external services, such as Google Drive, Snoflake, SQL server and so on.
* Github — configure the link to the Github repository, in order to use its code and commit changes.
* Terminals— the terminal of your virtual machine.
* Comments — the list of comments to your project.
* History — the log of project actions. This aspect is very useful when working with other people, because it allows you to see who did what.
* Publish Editor — the editor, which permits both to select the layout of the project for publication and to publish the project on the Web. Currently, two layouts are supported: article and dashboard.

Now that we have seen a general overview of Deepnote, we just have to try it with a practical example! :)

## 1.2 Blocks Embedding
Deepnote permits to embed block cells wherever you want, provided that the hosting Web site allows the embedding option. This can be achieved by selecting the Share block option, located at the right of each block cell.

Continue Reading on [Towards Data Science](https://towardsdatascience.com/deepnote-a-collaborative-framework-for-your-python-notebooks-99390a6766e9)