There's no server-side component, so you can share your notebooks on static site hosts like GitHub pages. Check out the source for this page here.
You create your program in cells, just like the one below.
Cells can run either automatically on page load, or can wait until the reader explicitly runs them.
Each cell is a module. You can export functions and values from one cell to be used in others.
The exported values are available in other cells.
Cells can be hidden by default.
You can use top-level await syntax.
You can query CORS-enabled APIs using fetch.
You can import third-party ES modules.
You can use several different console functions.
You can use other languages like Python.