starboard-notebook VS hal9ai

Compare starboard-notebook vs hal9ai and see what are their differences.


Web-First Composable Data Pipelines (by hal9ai)
Our great sponsors
  • Nanos - Run Linux Software Faster and Safer than Linux with Unikernels
  • Scout APM - A developer's best friend. Try free for 14-days
  • SaaSHub - Software Alternatives and Reviews
starboard-notebook hal9ai
7 11
783 48
- -
8.6 9.4
3 days ago 9 days ago
TypeScript JavaScript
Mozilla Public License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of starboard-notebook. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-08-31.
  • Turns Jupyter notebooks into standalone web applications and dashboards
    7 projects | | 31 Aug 2021
    You could consider an in browser notebook to get your cost down to near nothing - it depends a bit on what kind of tasks your students do whether they fit in the browser (one wouldn't train a large neural network in one for instance)

    There's Starboard (which I'm building, it's built specifically for the browser and can integrate into a larger app deeply) and JupyterLite (the closest you will get to JupyterLab in the browser), either can be a good choice depending on your requirements. Both use Pyodide for the Python runtime.

    [1]:, demo:


  • Enabling COOP/COEP without touching the server
    2 projects | | 5 Aug 2021
    A few examples of web-applications that have this problem are in-browser video converters using ffmpeg.wasm, a web-based notebook that supports Python and multithreaded Emscripten applications.
  • I want to learn D3. I don’t want to learn Observable. Is that ok? (2019-2021)
    6 projects | | 13 Jun 2021
    As someone building an in-browser notebook I have a lot of opinions on notebook environments. Notebooks serve different purposes, sometimes the notebook itself is the end-goal because the author is creating an interactive tutorial or explaining a complex concept with a bunch of visualizations. Observable is a fantastic tool for that, and the kind-of-Javascript reactive programming system it is built on is a great fit for that.

    Outside of that use-case, I think notebooks are great for the first 20% of the effort that gets 80% of the work done. If it turns out one also needs to do the other 80% of the effort to get the last 20%, it is time to "graduate" away from a notebook. For instance if I am participating in a Kaggle machine learning competition I may train my first models in a Jupyter notebook for quick iteration on ideas, but when I settle onto a more rigid pipeline and infra, I will move to plain Python files that I can test and collaborate on.

    This "graduation" from notebook to the "production/serious" environment should be straightforward, which means there shouldn't be too much magic in the notebook without me opting into it. Documentation in my eyes is not so different, I should be able to copy the examples easily into my JS project without knowing specifics of Observable and adapt it to my problem. Saying "don't be lazy and just learn Observable", or "you must learn D3 itself properly to be able to use it anyway" is not helpful. Observable being a closed, walled garden doesn't help: not being able to author notebooks without using their closed source editor is a liability that I can totally understand makes it a non-starter for some companies and individuals.

    I think it's ok to plug my own project: It's called Starboard [1] and is truly open source [2]. It's built on different principles: it's hackable, extendable, embeddable, shareable, and easy to check into git (i.e. I try to take what makes the web so great and put that in a notebook environment). You write vanilla JS/ES/Python/HTML/CSS, but you can also import your own more advanced cell types. Here's an example which actually introduces an Observable cell type [3] which is built upon the Observable runtime (which is open source) and an unofficial compiler package [4]. I would be happy for the D3 examples to be expressed in these really-close-to-vanilla JS notebooks, but I can convince the maintainers to do so.





  • Show HN: A simple JavaScript notebook in one file
    5 projects | | 8 Jun 2021
  • Pyodide: Python for the Browser
    5 projects | | 12 May 2021
    If you want to play with Pyodide in a web notebook you can try Starboard [1][2].

    A sibling comment introduces JupyterLite and Brython, which are Jupyer-but-in-the-browser, whereas with Starboard I'm trying to create what Jupyter would have been if it were designed for the browser first.

    As it's all static and in-browser, you can embed a notebook (or multiple) in a blog post for instance to power interactive examples. The bundle size is a lot smaller than JupyerLite for the initial load - it's more geared towards fitting into existing websites than being a complete IDE like JupyerLab.



  • Brython: Python in the Browser
    1 project | | 12 Apr 2021
  • Ask HN: What personal tools are you the most proud of making?
    5 projects | | 6 Apr 2021


Posts with mentions or reviews of hal9ai. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-10-26.
  • Mlflow, fastapi, streamlit template Project
    2 projects | | 26 Oct 2021
    We would love to help out since this is a perfect use case for; we are about to release our beta version that makes this as easy as copy-pasting code. You can find me at javier at to find some time to chat and give you a walkthrough of our code-to-api functionality.
  • Flask with react.js
    1 project | | 8 Oct 2021
    Hi there, would love to help you out. We are building a JavaScript + Python/R/AI service called to enable you to build React/Vue/Svelte/Angular apps against Python/R models. Want to send me an email to javier at to chat and help out?
  • Is BI dead? – On dismantling data's ship of Theseus
    2 projects | | 21 Sep 2021
    Would love to hear your feedback for -- We are building an open source platform for data analysis based on reusable code blocks and a community to build and monetize their contributions. We are pretty early in our journey, launched our alpha and getting ready for our beta release, but would love to hear your thoughts. You can find me at javier at Cheers!
  • Data Science with JavaScript: What we've learned so far?
    7 projects | | 9 Sep 2021
    Author here, we can save some clicks by reposting content as comment:

    Hi there, since the beginning of this year we've been exploring how far we can take Data Science with JavaScript. As part of this journey, we started [1], an integrated environment to help us be more productive when analyzing data with JavaScript.

    We want to ask for your feedback, but more importantly, we want to use this post to share what we've learned so far:

    1. Visualizations: JavaScript is great at visualizing interactive data, this is probably obvious but worth mentioning nonetheless. Some of the highlights here, D3.js [2] is still a great library to perform visualizations; however, D3.js is really low level -- Kinda like TensorFlow [3], not Keras [4]. We actually went to create our own charting library to combine the flexibility of D3 with the ease-of-use of other libraries like Plotly [5]; just to find out later on that Plot.js [6] got launched as an amazing library that builds on top of D3. So we ended up integrating Plot.js as our recommended charting library.

    2. Transformations: We found out that JavaScript in combination with D3.js has a pretty decent set of data import and transformation functions; however, it comes nowhere near to Pandas [7] or dplyr [8]. After shopping around, we found out about Tidy.js [9], loved it, and adopted it. The combination of Tidy.js and D3.js and Plot.js is absolutely amazing for visualizations and data wrangling with small datasets, say 10-100K rows. We were very happy with this for a while; however, once you moved away from visualizations into data analysis, we found out 100K rows is quite restrictive, which is also slow when having 1K-10K columns. So we switched gears and started using Arquero.js [10], a columnar JS library that enabled us to process +1M rows in the browser, decent size for real-world data analysis.

    3. Modeling: We are currently exploring this space so our findings are not final, but let us share what we've found so far. TensorFlow.js [11] is absolutely amazing, it provides a native port from TensorFlow to JavaScript with support for CPU, WebGL [12], WebAssembly [13] and NodeJS [14] backends. We were able to write an LSTM [15] to do time series prediction, so far so good. However, we started hitting issues when we started to do simpler models, like a linear regression. We tried Regression.js [16] but we found it falls short, so we wrote our own script to handle single-variable regressions using TF.js and gradient descent. It actually worked quite well but exposed a flaw in this approach; basically, there is a lot of work to be done to bring many models into the web. We also found out Arquero.js does not play nicely with TF.js since well, Arquero.js does not support tensors; so we went on to explore Danfo.js [17], which integrates great with TF.js but we found out it's hard to scale transformations to +1M rows and found other rough edges. Since then, well, we started exploring Pyodide [18] and perhaps contributing to Danfo.js, or perhaps involving more server-side compute with NodeJS, but that will be a story for another time.

    So net-net, we are still super excited about exploring Data Science, Data Engineering, Visualization and Artificial Intelligence with JavaScript; but realistically, it is going to take a few years for this to mature.

    In the meantime, we think Data Science with JavaScript shines with smaller datasets and interactive visualizations; which we believe Hal9 can help you be productive at. That said, we do believe that motivated JavaScript users can help unblock themselves by adding new functionality and contributing back libraries to NPM or components to our open source project, please do reach out in Hal9's GitHub repo [19] if you wanna lend a hand!

    Alright, so call to action? Please head to and give it a shot! We would love to hear where you think this could be useful, what features we are missing, and any feedback you may have.

    To keep in touch, please subscribe to our weekly email at [20], contact us at [email protected], or follow us on Twitter as

    Thanks for reading along!


    7 projects | | 9 Sep 2021
  • Hal9: Data Science with JavaScript
    4 projects | | 9 Sep 2021
    Hi there, this last year I've been exploring how far we can take Data Science with JavaScript and as part of this started, an integrated environment to help us be more productive when analyzing data with JavaScript.
    4 projects | | 9 Sep 2021
    In the meantime, we think Data Science with JavaScript shines with small datasets and interactive visualizations; which we believe Hal9 can help you be productive at. That said, we do believe there must be motivated JavaScript fans out there to unblock themselves with new functionality and contributing back to our open source project, please do reach out in Hal9's GitHub repo if you wanna lend a hand!
  • Hal9: Data Science for Web Developers
    1 project | | 9 Sep 2021
    Hi there! I'm a developer that spent this year building, a free and open source platform that helps web developers do data science, visualization and even AI with the ease of use of drag&drop, and the freedom of writing arbitrary JavaScript code.
  • I want to learn D3. I don’t want to learn Observable. Is that ok? (2019-2021)
    6 projects | | 13 Jun 2021
    I sympathize with the comments, as a software engineer, this comment from Mike really describes my frustration with Observable's runtime:

    > Observable notebooks are like spreadsheets, where cells run automatically whenever you edit or values change. That’s not how conventional (imperative) programming languages work, so sadly you can’t simply copy-paste a whole notebook into a vanilla JavaScript application.

    However, I do think many others will prefer their reactive runtime; so this is by no means a criticism to Observable, they are doing great work. They are just not targeting JS-purists and that might be the right call.

    As a software engineer, I love D3 but don't want to be stuck with a reactive runtime that is not vanilla JavaScript.

    I got myself to build, an integrated environment to do data analysis based of JavaScript. Is not a D3 learning environment but you can certainly use it for that purpose. If someone is interested in providing feedback or helping with D3 examples, please do so at or shoot me an email at javier at

  • Show HN: Hal9 – Roblox for AI
    5 projects | | 30 May 2021
    Thanks for playing with this, really appreciate it!

    Yes, so currently our budget is low and we turn on AWS EC2 workers on demand... so most likely, "Pipeline running" triggers as we wait for about 90s for the EC2 instance to start. We should be able to keep machines on longer as we get our first few customers.

    Thanks, we do support fetching data from JSON, is there a difference with "web JSON"? XML/RSS would be nice indeed, created this issue:

What are some alternatives?

When comparing starboard-notebook and hal9ai you can also consider the following projects:

pyodide - Python with the scientific stack, compiled to WebAssembly.

regression-js - Curve Fitting in JavaScript.

unofficial-observablehq-compiler - An unofficial compiler for Observable notebook syntax

arquero - Query processing and transformation of array-backed data tables.

jupyterlite - Wasm powered Jupyter running in the browser 💡

TiddlyWiki - A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.

ml5-library - Friendly machine learning for the web! 🤖 - The next generation of the CodeMirror in-browser editor

ffmpeg.wasm - FFmpeg for browser and node, powered by WebAssembly

svg-line-chart - Tired of 200kb charting browser libs? ...I feel ya. Come to the server-side!

Keras - Deep Learning for humans