nteract: Revolutionizing the Notebook Experience

This story was originally published on Plotly’s Modern Data blog.

nteract is an open-source, desktop-based, interactive computing application. Interactive computing applications allow individuals to create documents, like the one below, that contain executable code, textual content, and images and convey a computation narrative.

We built nteract to solve a few blockers that Jupyter Notebook and other tools in the interactive computing ecosystem weren’t designed to tackle:

  • Desktop integration -Jupyter has no installer, no native file menu, etc.
  • A Terminal-free experience — keep it easy for coding beginners!
  • In-app support for publishing — sharing our work should be seamless!
  • Keep it simple! We want a minimalistic, user-centered notebook!
  • A few UX/UI details we were craving: Sticky cells, input and output hiding, etc.

We hope that these improvements help developers extend the notebook ecosystem and help users create and share content using interactive notebooks. The ideal interactive notebook application has a low barrier to entry for business intelligence, data science, journalism, students, and research-focused users alike. Furthermore, it’s important that the interactive notebook offers a great developer experience and allows for rapid development and extensibility.

Now that we’ve established the problems we are trying to address, let’s explore how nteract addresses them. We’ll start by launching the nteract desktop application.

That’s it. Quick and easy! And since nteract is a desktop application, we can also double-click on any .ipynb files stored on our machine to open them directly in nteract. We’ve got a few example notebooks that are in our GitHub repository. Let’s use those to highlight some of the key features in nteract. We’ll start off by opening our intro notebook.

We can execute cells, move them around the notebook using drag and drop, and delete them. We can also pin any of the cells to the top of the notebook to have them present as we scroll through the document.

And last, but definitely not least, we have the ability to execute code in a variety of languages such as Python, R, Julia, and JavaScript.

That covers the basics — now let’s get on to the more exciting stuff! Data visualizations are insightful and timeless storytelling tools — and they are first class citizens inside nteract. nteract comes with built-in support for one of the industry’s most popular and easy-to-use data visualization tools, Plotly.

The same technology that allows Plotly visualizations to be first-class citizens in nteract also allows other interactive elements to be first class citizens. For example, nteract comes with built-in support for GeoJSON rendering, allowing anyone to view their GeoJSON data in a beautiful Leaflet visualization.

We’ve created all of these wonderful notebooks, but they are sitting in our desktops at the moment. Wouldn’t it be great if we could share this notebook with the rest of our team? Domino Data Lab’s data science platform makes collaboration around interactive notebooks, like our interactive notebook, to their workspace fast and easy.

And there’s so much more, but you’ll have to check it out for yourself. You can download one of our alpha releases and play around with the example notebooks or load up your own!

THE MAGIC BEHIND NTERACT

How does nteract make all of this happen?

nteract utilizes Electron, a framework for developing native, cross-platform desktop applications with HTML, CSS, and JavaScript. This gives users a tool that combines the rich experience of web applications with the accessibility of the desktop. As a result, non-technical and semi-technical users can easily leverage the power of interactive notebooks without worrying about confusing configurations or start up processes. nteract is the first interactive notebook application that brings the power of developer tooling to everyday users without a hassle.

nteract also capitalizes on the popularity and stability of the rich JavaScript package ecosystem. nteract provides a robust collection of well-tested and documented npm packages for managing connections with language kernels, manipulating the notebook document, and rendering kernel outputs. These packages are highly composable and can be used by other developers to develop their own interactive computing applications.

And that’s the crux of the magic. By combining the best of the web, the best of the desktop, and the best of JavaScript package ecosystem, we’ve created an open-source application that is accessible for everyone and highly composable for developers. As a result, developers have the ability to build more features, fix more bugs, and please more users in the process.

THE FUTURE OF NTERACT

While we’ve been busy working on nteract over the past couple of months, there is more work to be done. We’ve outlined some of our future initiatives in our GitHub repository, but I’d like to highlight some of the initiatives here.

Developers, researchers, and data scientists alike use git to manage different versions of their files in their workflows. Git integration will be built into the nteract application, allowing users to see the branch they’re on, create commits directly from the desktop application, and to view visual diffs of their notebooks.

Data science, like any human endeavor, is collaborative in nature. Team members almost always need to work with each other on a single notebook document. nteract hopes to implement real-time collaboration, built on top of the simple yet powerful architecture of Redux.

In addition to features that enable real-time collaboration, nteract will also provide the ability to connect to remote kernels. Remote kernels will allow users to connect to a computing ecosystem configured on a remote server from their local machine. This will allow research teams and other groups to set up consistent and reproducible computing environments across their cohort with ease.

And that’s a glimpse of what’s in store for nteract. As you can see, we are pretty passionate about making a tool that helps you and your team collaborate and create more efficiently.

Be sure to star and watch our initiatives repository to stay on top of the future!

IMPORTANT ACKNOWLEDGEMENTS

All of this work was made possible by the work of many contributors on the project, and more importantly, the generous donations of Plotly and Domino Data Lab. nteract is a young project and like any young project carries of risk. Despite this, Plotly and Domino Data Lab donated a total of $60,000 to jump start development on the application.

Why make a donation like this to a new open source project? While donating to a conference or a Meetup is a great way for a company to make an immediate impact on the tech community, donating to an open source project is a wonderful way for a company to make a timeless impact on the tech community. The software written by the nteract team will persist for generations, inspire many developers to build their own projects on top of our APIs, and help numerous scientists and researchers create and share their insights with ease.

Throughout history, numerous technical breakthroughs have flourished because of the support of early financial guardians. For nteract, these early guardians were Plotly and Domino Data Lab. Their support has allowed us to develop a beta version of the application, release a well-documented ecosystem of packages, and gain initial momentum for the project.

WE WANT YOU

nteract is a new project and we want your involvement. How can you become involved with the project?

  • Star the project on GitHub and share it with your social media networks.
  • Download and use one of our releases, and be sure to report bugs!
  • Submit a pull request with a new feature or bug fix.
  • Present a talk on nteract at a local Meetup or conference.