You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jupyter UI is a set of [React.js](https://reactjs.org) components that allow a frontend developer to build data products compatible with the [Jupyter](https://jupyter.org) ecosystem. The user interface delivers executable notebooks, cells, terminals, file browsers and allows the developer to manage a full integrated React tree instead of relying on iframes to display the Jupyter noteboks.
5
+
Jupyter UI is a set of [React.js](https://reactjs.org) components that allow a Web application developer to build [Data Products and Data Platforms](https://datalayer.tech/docs/glossary)compatible with the [Jupyter](https://jupyter.org) ecosystem. The user interface delivers executable notebooks, cells, terminals, file browsers and allows the developer to manage a full integrated React tree instead of relying on iframes to display the Jupyter Notebooks.
10
6
11
-
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](https://github.com/datalayer/jupyter-ui), fills that gap and provides components that a developer can easily integrate in any React.js application.
7
+
Jupyter(Lab) Notebook is a tool that allows Data Scientists to analyse datasets. However, it is not easy to create a custom user interface integrated in an existing application. Jupyter UI, [an open-source library](https://github.com/datalayer/jupyter-ui), fills that gap and provides components that a developer can easily integrate in any React.js application.
12
8
13
9
We ensure React.js as a first-class citizen in the Jupyter:
14
10
15
-
-[Components](/docs/category/components): JupyterLab visual as React.js components
16
-
-[Integrations](/docs/category/integrations): Embed Jupyter in Docusaurus.
17
-
-[Themes](/docs/category/themes): Themes for your data analysis.
18
-
19
-
You can get kick-started with simple [examples](/docs/category/examples)
20
-
21
-
## Problems with JupyterLab for Web developers
22
-
23
-
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.
11
+
-[Components](/docs/components): JupyterLab visual as React.js components
12
+
-[Integrations](/docs/integrations): Integrate Jupyter in Docusaurus, Next.js...
13
+
-[Themes](/docs/themes): Themes for your data analysis.
24
14
25
-
[JupyterLab](https://github.com/jupyterlab/jupyterlab) is built on the [Lumino](https://github.com/jupyterlab/lumino) widget toolkit.
26
-
27
-
1. Lumino allows to wrap React components and expose them as Lumino Widgets.
28
-
2. React.js **can not** use Lumino Widgets.
15
+
## Why?
29
16
30
-
:::caution
17
+
:::info
31
18
32
19
Although a developer can embed a React.js component into JupyterLab, the reverse is not possible.
33
20
34
-
**You can NOT embed JupyterLab into a React.js application**.
21
+
**You can NOT embed JupyterLab into a React.js application - This is that issue that Jupyter UI solves.**.
35
22
36
23
:::
37
24
38
-
## Jupyter UI at the rescue
25
+
JupyterLab is not usagble by Web Developers. Jupyter(Lab) user interfaces are built on top of [Lumino](https://github.com/jupyterlab/lumino) widget toolkit, which is an [imperative way](https://en.wikipedia.org/wiki/Imperative_programming) 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 Products and Data Platforms](https://datalayer.tech/docs/glossary) 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 [declarative](https://en.wikipedia.org/wiki/Declarative_programming) toolkit (like React.js) and you also want to integrate on a per-component basis the Jupyter functionality in your application.
39
26
40
-
Jupyter UI provides the foundations to build a modern and flexible data prodcut user interface. Underneath, it gathers the minimum set of [Lumino](https://github.com/jupyterlab/lumino) and [JupyterLab](https://github.com/jupyterlab/jupyterlab) technologies. We wrap Lumino Widget in a React.js component and expose Redux Observables actions that proxy Lumino Commands. We bind Redux Observables Epics to Lumino Signals. Those bindings convert Lumino Signals to Observable to run the needed actions in the [Observable Epics](https://redux-observable.js.org/docs/basics/Epics.html).
27
+
1. Lumino allows to wrap React components and expose them as Lumino Widgets.
28
+
2. React.js **can not** use Lumino Widgets.
29
+
30
+
## Jupyter UI at the Rescue
31
+
32
+
Jupyter UI provides the foundations to build a modern and flexible [Data Products and Data Platforms](https://datalayer.tech/docs/glossary) user interface. Underneath, it gathers the minimum set of [Lumino](https://github.com/jupyterlab/lumino) and [JupyterLab](https://github.com/jupyterlab/jupyterlab) technologies. We wrap Lumino Widget in a React.js component and expose Zustands actions that proxy Lumino Commands. We bind Zustands Epics to Lumino Signals. Those bindings convert Lumino Signals to Observable to run the needed actions in the [Observable Epics](https://redux-observable.js.org/docs/basics/Epics.html).
41
33
42
34
- Services to connect to kernels.
43
35
- Extension injection system.
44
-
- Lumino signals and messages integrated with Redux.
36
+
- Lumino signals and messages integrated with Zustand.
45
37
- Lumino commands.
46
38
47
-
To solve the above issues, Jupyter UI ships components to easily create a React.js data product compatible with the Jupyter ecosystem. Those components can be used in any React.js application, and also in static websites like Docusaurus, Next.js or Remix. They wrap underneath the JupyterLab code and allow developing React.js applications with code execution capability. State management is based on Redux, and Mobx is to be added.
39
+
To solve the above issues, Jupyter UI ships components to easily create a React.js [Data Products and Data Platforms](https://datalayer.tech/docs/glossary)compatible with the Jupyter ecosystem. Those components can be used in any React.js application, and also in static websites like Docusaurus, Next.js or Remix. They wrap underneath the JupyterLab code and allow developing React.js applications with code execution capability. State management is based on Zustand, and Mobx is to be added.
48
40
49
-
The Jupyter UI components expose JupyterLab visuals as React.js components and offers a bi-directional communication between React.js/Redux and JupyterLab/Lumino.
41
+
The Jupyter UI components expose JupyterLab visuals as React.js components and offers a bi-directional communication between React.js/Zustand and JupyterLab/Lumino.
@@ -65,31 +57,17 @@ You can find more context reading this [abstract](https://fosdem.org/2022/schedu
65
57
66
58
## Examples
67
59
68
-
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 platform](https://datalayer.io), a collaborative platform for data analysis.
60
+
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 [Datalayer SaaS, a collaborative platform for data analysis](https://datalayer.io).
0 commit comments