The same React build ships three ways — a Tauri desktop shell with an on-demand Python
sidecar, an nginx container that reverse-proxies the sidecar same-origin, and a Jupyter
wheel with the app bundled into the kernel.
Desktop (Tauri v2)
Sidecar launched on demand over 127.0.0.1
Local MBTiles through custom MapLibre protocol backed by Tauri commands
Native fetches trust the OS certificate store; mTLS via env vars
Container (nginx)
Built and verified on every push to main (no registry publish)
Browser reaches the sidecar same-origin at /sidecar
No Tauri shell — desktop filesystem workflows need the installed app
Jupyter (wheel)
App build embedded into the wheel (bun run build:embed)
PWA service worker disabled in the embed
Version sourced dynamically from mappview/__init__.py