Best way to create/distribute a stand alone app based on Jupyter Notebook/JupterLab?

Have you tried conda constructor?

  • It creates a double click + follow steps installer, which installs python, conda and specified conda packages.
  • Installing Jupyter this way also creates a start menu entry in windows to start the Jupyter server.
  • It also allows you to specify pre- and post-install batch scripts, that you can use for extra configuration.
  • It can create linux and osx installers as well.

For distribution and updates of apps (.ipynb files), I once used the startup scripts of the Jupyter server to check for newer versions in a github repo and pull the new versions of the files if there were any.

Also, for a friendlier user experience inside Jupyter, check appmode.