Executable cells with Thebe
It looks like the authors of Thebe are making good progress on getting JupyterLite/pyodide supported as a backend. This looks like the end game for interactive content. This example already works, but it uses a BinderHub kernel. Unfortunately, this method only supports books that are hosted on GitHub, and the repositories have to be open as well.
A working example of Thebe + JupyterLite/pyodide can be found here. I haven't been able to reproduce this example inside a Jupyter Book yet. I was able to load the "Activate" button, but it hangs when it tries to load JupyterLite.
Another option is to let students launch a Jupyter kernel locally (from the command line), which Thebe connects to. This is not officially supported, but I think it can be done with some small hacks. Here is a working example.
GitHub issues to track
Thebe issue 585. Looks like Thebe version 0.9 will feature JupyterLite.
Sphinx-Thebe issue 65. Updating the Thebe dependency of Sphinx-Thebe.
Sphinx-Thebe issue 27 shows how to use Thebe with a local Jupyter kernel.