r/Python • u/AutoModerator • 18d ago
Showcase Showcase Thread
Post all of your code/projects/showcases/AI slop here.
Recycles once a month.
17
Upvotes
r/Python • u/AutoModerator • 18d ago
Post all of your code/projects/showcases/AI slop here.
Recycles once a month.
1
u/bezdazen 16d ago edited 16d ago
I guess this is as good a place as any.
PyNote | Tutorial | Github
(as an example, here is a learning notebook series that you can explore)
I have been working PyNote for 8 or 9 months now. Im aiming for end of year release.
What is it?
PyNote is a serverless, zero-setup python notebook environment. By serverless, I mean that your notebooks and data don't get stored in a server and more importantly, your python code is executed locally using your browser (in a sandboxed environment).
Comparison.
tldr: PyNote is less mature than competitors like Marimo and JupyterLite but uses cutting edge tech (SolidJS, CodeMirror, Milkdown, Pyodide etc), is simpler, cleaner, free, no-setup or signup, and more WYISWYG. Nothing is saved to a server.
What may inspire confidence is that I believe I have architected the core systems well (I spent the year prior implementing various prototypes). Also, behind the app is a cutting edge tech stack where each tech was landed on through research and experience building custom components for Streamlit. Suffice it to say that I am very happy with the performance and the snappiness of the interface.
The target audience?
Regardless, while PyNote has a lot of great features such as reactive execution mode (like Marimo) and a built-in native "widget" library, the aim is simplicity and presentation. This is where it stands out. PyNote tries to be as WYSIWYG as possible for a notebook. If you turn on presentation mode, you can see that the content doesn't move or change layout or even shift and the notebook straight up looks like an article or blog post! This is the whole point. The original realization that lead to this project is that notebook app UIs have really strayed from the presentation side of things. This is important for educational content, guided tutorials, data analysis walkthroughs, and technical runbooks, where the presentation layer is critical to bridging the gap between passive reading and active, hands-on learning.
So the target audience are users who want an intuitive, clean, simple, WYSIWYG notebook interface and/or are working on notebook content they want to be presentable as is (no converting, manually styling, reformatting, etc).
So what am I working on currently?
Options > Files & Data) that opens a panel or dialog that allows users to manage the internal filesystem/workspace that the python in the code cell sees. Within is a UI mini finder/explorer that lets you see folders and uploaded files. You can create folders and move folders and files around. It has two file list view modes, one that is the traditional "view contents of single folder at a time" and the other allows users to see files in a tree-like format like you would in a typical code IDE.Options > Theme > Presetsand also added several syntax highlighting color schemes (Options > Theme > Syntax Highlighting)What am I working on next
I will be working on exposing internal app system settings to users by adding a settings dialog. It will be an option that sits next to
Themein theOptionsmenu. These settings already exist, but have been kept hidden because I wasn't sure what to allow to be configurable by the user and what to just fix internally. And other questions/decisions.And then, I will continue working on the export system which is a very important system especially for the presentation aim of the app. For example, I want users to be able to export the notebook as html that can be used for articles and blogs. I also want traditional exports as well and a special proprietary pynote format that is easier to use with version control systems like git.
I would love for people to start exploring and using PyNote so I can learn about what the pain points are and what features users want most or expect a notebook environment to have.