Co

Collaborative Jupyter Whiteboards

Hacker News

Collaborative Jupyter Whiteboards

I found a common occurrence in data science type of meetings is someone screen-shares their Jupyter notebook either by Zoom, Hangouts, or conference room display and then starts scrolling through it explaining their tables, plots, markdown, Latex, etc. When I want to ask a question about a plot that the presenter scrolled past, there's a lot of "can you scroll up a little, no too far, back down a little". If I want to point to an area of a plot or column in a table, I can do it in Zoom, but it's all out of place once the notebook is scrolled. Usually someone has to ask the presenter to zoom in to see some tiny Matplotlib font. This led me to start looking into multiplayer versions of Jupyter that strive to be like Google Docs. There's proprietary ones like CoCalc and DeepNote, then there's open-source work underway to add real time collaboration to JupyterLab using Yjs. All of these are geared towards collaborative editing of the notebook code, but I really needed and saw a use for was collaborative viewing of the results contained in the notebook. Since notebooks usually have access to lots of valuable data, IT can be prickly about opening up the network so that others can access one of these types of notebook instances for collaborative editing. I wanted to quickly take my notebook running locally or firewalled behind some corporate network and turn it into a shareable URL with a whiteboarding canvas that people could interact with. What I came up with uses nbconvert to render the notebook to HTML, tldraw overlaid on top of the HTML to provide whiteboarding, and Yjs to handle synchronizing state between meeting participants. Tldraw lets everyone add freehand drawings, text, and sticky notes. You can point to things, draw, and create diagrams right on the notebook content that's being discussing instead of creating a separate blank whiteboard from Zoom, Miro, FigJam, or whatever. To turn a notebook into a whiteboard, you can add it through the site or better yet use the JupyterLab extension for one click conversion. Each participants scroll position is added to their Yjs awareness, then a shared map keeps track of who is the scroll leader. If I want to ask my question about that plot you scrolled past, I click to become the scroll leader and then everone else has their scroll position sync with mine. If the presenter showed a plot that I didn't have enough time to parse, I can break away from syncing their scroll position and go back to review it. Nbconvert renders everything exactly as it looks in your notebook app into a read-only HTML version and is what GitHub uses for notebooks. Interactive plots from Bokeh, Holoviews, etc can still work if you trust the JS, and since editing notebooks while showing them during a meeting usually doesn't go well, read-only is probably good enough (eager to hear feedback on this point though). The nice thing is that nbconvert works with any ipynb file, so this approach is compatible with notebooks created in JupyterLab, VSCode, Colab, SageMaker, CoCalc, or DeepNote. Like nbviewer.org, I don't store any ipynb notebook files. The rendered HTML is cached (like they do) so that nbconvert doesn't have to run each time a participant joins a room. Tldraw was on the front page here a few months back and has a great design that lets you use whatever CRDT you want. For the CRDT I used Yjs since I was familiar with it from working on RTC in JupyterLab. You can try it out the core functionality without creating an account by checking out at one of the public notebooks at https://jupyterspot.com . For example, there's a notebook showing what Stable Diffusion thinks a collaborative Jupyter whiteboarding app looks like here: https://jupyterspot.com/notebook?id=3de4ed2c-e20d-4096-b34f-... Also, sponsor these folks who made it possible on GitHub: https://github.com/sponsors/steveruizok https://github.com/sponsors/dmonad

Share card

Actual performance

4points
Did not reach leaderboard

Launch Intel predictions

Analyze your own launch →
Product HuntOn track for Day 1 leaderboard · Strong signals: google, tiny, using · Missing: mac, agents, macos
97%97% predicted probability of success on Product Hunt, based on ML models trained on real launch data.
best fitHighest predicted score across all platforms for this description.
Indie HackersFits the IH revenue-focused audience · Strong signals: created, latex, para · Missing: supports, reddit linkedin, podcasting
89%89% predicted probability of success on Indie Hackers, based on ML models trained on real launch data.
Hacker NewsStrong engagement from HN community · Strong signals: lua, ide, io · Missing: https docs, excited, just released
79%79% predicted probability of success on Hacker News, based on ML models trained on real launch data.
nativeThis product was originally launched on this platform.
TrustMRRLess likely to generate early MRR · Strong signals: month, google, way · Missing: mobile apps, ios, personal
41%41% predicted probability of success on TrustMRR, based on ML models trained on real launch data.
AppSumoMay struggle as an AppSumo deal · Missing: plus, platform, intuitive
32%32% predicted probability of success on AppSumo, based on ML models trained on real launch data.
Acquire.comPre-revenue stage for this audience · Strong signals: active · Missing: arr, mrr, revenue
20%20% predicted probability of success on Acquire.com, based on ML models trained on real launch data.
BetaListMay not resonate with beta-testers · Strong signals: real time · Missing: web3, chat, crypto
0%0% predicted probability of success on BetaList, based on ML models trained on real launch data.

Incorrect prediction on native model

Similar products

pD
pDoS – censorship resistant collaborative DDoS-ing60%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

pDoS – censorship resistant collaborative DDoS-ing

Hacker News1
Ca
Cadavre Exquis – Collaborative Poetry43%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Cadavre Exquis – Collaborative Poetry

Hacker News2
Co
Collaborative Haiku and Poetry43%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Collaborative Haiku and Poetry

Hacker News2
Mergenote
Mergenote41%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Collaborative NoteTaking

Indie Hackers1b2b
RobinWords
RobinWords40%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

collaborative storytelling

Indie Hackers1$15/moeducation
Im
ImagineIf – Collaborative storytelling where AI visualizes each segment19%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

ImagineIf – Collaborative storytelling where AI visualizes each segment

Hacker News2
Po
Postfactor – Collaborative code refactoring63%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Postfactor – Collaborative code refactoring

Hacker News16
Ta
TaleStitch – An app for collaborative AI storytelling14%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

TaleStitch – An app for collaborative AI storytelling

Hacker News3
Ta
TaleStitch – An app for collaborative AI storytelling14%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

TaleStitch – An app for collaborative AI storytelling

Hacker News1
Ga
Ganbreeder: A collaborative tool for BigGan breeding59%Launch Intel prediction score: how likely this product is to succeed on its source platform, based on its name, tagline, and description.

Ganbreeder: A collaborative tool for BigGan breeding

Hacker News1