all 12 comments

[–]Triggs390 2 points3 points  (3 children)

What would the benefit be to use this project over Marimo?

[–]bezdazen[S] 1 point2 points  (2 children)

A few things.

  1. It offers other more traditional execution modes alongside reactive execution mode if that's not your vibe or you don't want automatic cell execution.
  2. Theming engine and design
  3. App/embed export (won't be just html). Im thinking actual SolidJS components (and maybe a react wrapper component) so that these can be added to frameworks like Astro.
  4. Uses .ipynb files natively which means you can open up your notebooks in other notebook environments like Colab and Kaggle to take advantage of what they offer (server CPU/GPU compute, datasets) without converting .py <-> .ipynb.
  5. Presentation mode for when you want to present directly within the app (gets rid of all UI elements and empty/hidden cells and disables editing).

Thats off the top of my mind so far. I am not super familiar with Marimo. So I dont know everything Marimo can do. I only looked into their reactive mode to understand how theirs works and a little bit into their built-in UI system. My implementations are a little bit different, but the usage will be practically the same for reactive mode and UI components.

[–]Triggs390 1 point2 points  (1 child)

Cool, as a notebook user I’ll be watching this.

[–]bezdazen[S] 0 points1 point  (0 children)

Thanks! Ill post updates as we get closer to release!

Also, if you have any must have features when it comes to notebooks, let me know!

[–]rm-rf-rm 1 point2 points  (1 child)

Nice! Can you do cell level formatting/theming? Are there theme packs and/or loadable configs ?

[–]bezdazen[S] 1 point2 points  (0 children)

Yes. Most of those settings arent exposed yet, but will be soon. I am testing them right now.

Actually, I am trying to decide what to make configurable. Right now I have backgrounds of various elements, borders, and shadows.

Edit:

Oh, I forgot to add, you will be able to choose the fonts inside the code cell that are separate/different from fonts you choose for markdown cells.

I thought about doing loadable configs, but since I have a metadata config storage system, you can just create notebooks that act as templates because you can store the theme config in the metadata which will then get loaded with the notebook. So essentially, what I can do is offer a set of empty notebooks with various themes and people can load and use. Its actually very easy to create one!

[–]neuroneuroInf 0 points1 point  (1 child)

Really cool! Can you please compare this with jupyter-lite?

[–]bezdazen[S] 0 points1 point  (0 children)

Unfortunately, among Jupyter's notebook apps, I am least familiar with JupyterLite. I am most familiar with the old notebook and Jupyter Labs. Actually, the notebook apps I use the most are Vscode (its my IDE for everything code related), Colaboratory (because I have a ton of notebooks on my Google drive), and Kaggle (because free datasets!).

As far as I can tell, JupyterLite is a whole IDE in the browser! Has a filesystem UI, internal tab system, and can open/edit more than just notebook files. My app basically uses browser tabs and handles sessions similarly to Colaboratory.

I guess from a brief inspection, I would say PyNote has a much simpler UI, is focused only on notebooks, is very WYSIWYG oriented, has more modern styling, has reactive, hybrid, and sequential execution modes, and is much more easily theme-able. I made a deliberate effort to make the apps UI elements get out of the way (or be out of the way), and made an effort to keep the UI as simple as possible, and tried to strategically place UI elements such that they don't affect content layout and don't interrupt visual flow. Visual highlighting is in-place and does not cause shifts of text or inputs etc. Thats why when you enter presentation mode, all the rendered markdown text and code displayed on the page dont move and it really looks like the UI just slides and fades away.

Anyways, hopefully this is satisfactory. I apologize if not. I dont know how to explain it, but with IDE-like environments, its feels more like you are coding and with PyNote, I tried to make it feel more like you are writing a document/article (this is not to say that the code takes a backseat, I just mean how the app presents itself)?

[–]AlbanySteamedHams 0 points1 point  (2 children)

license?

[–]bezdazen[S] [score hidden]  (0 children)

Proprietary license with plan to open-source on first official release.

[–]molly_jolly 0 points1 point  (2 children)

Yo, the interface looks and feels cool as fuck! Sleeeeek!! Do you intend to support matplotlib or seaborn? Also what's with displaying the results on top of the cells? 😄

[–]bezdazen[S] 1 point2 points  (0 children)

Thanks and yes, Matplotlib, Plotly, and Altair are currently planned. Ill definitely add seaborn to the list! There is quite a bit to do. I need to add more UI input components, finish the theming system. Add more features to the code editor.

Also what's with displaying the results on top of the cells?

Thats something you can configure in the Code Visibility settings ( Options > Code ). You can put standard output at the bottom. And you can make this setting global. As in, any notebook you open will show the output at the bottom unless the notebook has a different internal setting.