The (reactive JavaScript) Observable runtime is open source, and every notebook is available compiled as an ES Module.
You can embed notebooks in their entirety on any webpage, or just grab the embed code for an individual cell, if the notebook produces a single visualization.
For the details in all their nitty gritty, see: https://observablehq.com/@observablehq/downloading-and-embed...