Skip to content

🪐 ⚛️ UI Components to create data products compatible with the Jupyter ecosystem.

License

Notifications You must be signed in to change notification settings

ceylonai/jupyter-ui

 
 

Repository files navigation

Datalayer

Become a Sponsor

🪐 ⚛️ Jupyter UI

Jupyter UI is a set of React.js components that allow a frontend developer to build data products compatible with the Jupyter ecosystem. The user interface delivers executable notebooks and cells.

Read the documentation on https://jupyter-ui.datalayer.tech

Try it on this CodeSandbox.

The below image shows a gallery of the available React.js components ready to be used in you custom application. These open source components are used to build the online Datalayer service, a collaborative platform for data analysis.

Jupyter UI Gallery

Why?

Stop extending, compose instead (cfr Composition over inheritance)

The Jupyter(Lab) notebook is a tool that allows data scientist to analyse dataset. However, it is not easy to create a custom user interface integrated in an existing application. Jupyter UI, an open-source library, fills that gap and provides components that a developer can easily integrate in any React.js application.

In terms of technical stack, the Jupyter(Lab) user interface is built on top of Lumino, which is an imperative way to build user interface and can not be consumed by industry standard declarative frameworks like React.js. As a user interface developer, if you want to create a custom data product on top of Jupyter, you have to stick to Lumino and carry-on the full notebook interface not tailored to your specific needs. This is not what you want. You just want to expose what you need, you want to develop with your favorite toolkit (like React.js) and you also want to integrate on a per-component basis the Jupyter functionality in your application.

IPyWidgets are supported (the Comm feature needs to be fixed). JupyterLite and PyScript support is on the roadmap. Autocompletion is also available.

You can find more context reading this abstract of the talk given at FOSDEM 2022 (video recording).

Third party integrations

We maintain a plugin for Docusaurus in the docusaurus package folder (see the Docusaurus example).

Jupyter UI Docusaurus

Documentation

You can get more details on the Jupyter UI website.

The typedoc documentation is available online.

Support

Please open issues for questions, feature requests, bug reports... We also welcome pull requests.

Contribute

Follow the below steps to create your development environment. You will need Miniconda up-and-running on your machine (MacOS or Linux, Windows is not supported as development platform for the time-being).

# Clone the jupyter-react repository.
git clone https://github.com/datalayer/jupyter-react.git && \
  cd jupyter-react
# Setup your development environment.
conda deactivate && \
  make env-rm # If you want to reset your environment.
make env && \
  conda activate datalayer
# JupyterLab has migrated to Yarn v3, we need Yarn v1 for resolutions and ease of vs-code usage.
curl https://raw.githubusercontent.com/jupyterlab/jupyterlab/v4.0.0a36/jupyterlab/staging/yarn.js \
 -o $( dirname "$(which jupyter)" )/../lib/python3.10/site-packages/jupyterlab/staging/yarn.js
jlpm --version # Should be 1.22.19.
# Install and build.
make install build
# You can start an example and hack the source code.
# The changes will build automatically and will be available in your browser.
# You will have to accept to SSL certificate in your browser the first time.
echo open https://localhost:3208
yarn start
# We have more examples. Pick one of the following commands and enjoy.
yarn start:create-react-app      # open http://localhost:3000
yarn start:docusaurus            # open http://localhost:3000/docs/intro
yarn start:lexical               # open http://localhost:3208
# ...and some uncomplete and deprecated examples...
yarn start:slate                 # open http://localhost:3266
yarn start:prosemirror           # open http://localhost:4567

⚖️ License

Copyright (c) 2022 Datalayer, Inc.

Released under the terms of the MIT license (see LICENSE).

About

🪐 ⚛️ UI Components to create data products compatible with the Jupyter ecosystem.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 74.4%
  • CSS 6.8%
  • Jupyter Notebook 6.5%
  • Python 6.2%
  • JavaScript 4.2%
  • Makefile 0.9%
  • Other 1.0%