Skip to main content

PWA (Progressive Web App) support for JupyterLab — manifest, service worker, installability

Project description

jupyterlab-pwa

Progressive Web App (PWA) support for JupyterLab.

Makes JupyterLab installable (Chrome/Edge "Install app" button, iOS "Add to Home Screen") by serving a web app manifest, a service worker with a fetch handler, and injecting PWA tags into JupyterLab's HTML — all from the user server. No JupyterHub config or ingress changes required.

Install

pip install jupyterlab-pwa

The server extension auto-loads via the _jupyter_server_extension_points entry point. No manual configuration needed.

How it works

Three pieces, all served by the user pod:

  1. Manifest (/pwa/manifest.json) — web app manifest with name, icons, start_url, scope, display: standalone.
  2. Service worker (/pwa/sw.js) — minimal SW with install, activate, and fetch event listeners (enough for Chrome's installability criterion).
  3. HTML injection — wraps JupyterLab's LabHandler.get() to inject <link rel="manifest"> and <script>navigator.serviceWorker.register()</script> into the rendered HTML, before </head>.

This matches how code-server handles PWA — all logic lives in the application, served by its own routes, tags in its own HTML.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupyterlab_pwa-0.1.1.tar.gz (37.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyterlab_pwa-0.1.1-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file jupyterlab_pwa-0.1.1.tar.gz.

File metadata

  • Download URL: jupyterlab_pwa-0.1.1.tar.gz
  • Upload date:
  • Size: 37.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for jupyterlab_pwa-0.1.1.tar.gz
Algorithm Hash digest
SHA256 734a422b963240a7728c6970c95672d8760247aa0f5071cda63b72124fbd80b1
MD5 643e403b7ae0b2b3b8c0323f4ca337d0
BLAKE2b-256 da575df08dcbaf30e26840132aeccfee40321cdeeb1215275d01b76127119153

See more details on using hashes here.

File details

Details for the file jupyterlab_pwa-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: jupyterlab_pwa-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for jupyterlab_pwa-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c869d2fc2395ea75e5dd782de1acc2f95d77d35ec7e668ad0c8097323048fe4f
MD5 818c5770a926760c273becba3a4daa5a
BLAKE2b-256 36fe40d2bdf70ec8a40fb1dfd3d84480a4a7755432f1a9ac92de98b4e768f860

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page