# Voilà — Turn Jupyter Notebooks into Standalone Web Applications > Voilà converts Jupyter notebooks into interactive web dashboards by executing notebook cells and rendering only the output, hiding all code while preserving interactive widgets. ## Install Save in your project root: # Voilà — Turn Jupyter Notebooks into Standalone Web Applications ## Quick Use ```bash pip install voila voila my_notebook.ipynb # Opens browser at http://localhost:8866 ``` ## Introduction Voilà takes a standard Jupyter notebook and serves it as a standalone web application. It executes all cells on the server, strips out the source code, and presents only the outputs—charts, tables, and interactive widgets. This lets data scientists share their work as polished dashboards without building a separate frontend. ## What Voilà Does - Renders Jupyter notebooks as web applications with code cells hidden from end users - Preserves ipywidgets interactivity so dashboards respond to sliders, dropdowns, and buttons - Executes notebooks on each page load, ensuring outputs reflect the latest data - Supports custom templates and themes for branding dashboard pages - Integrates with JupyterHub for multi-user deployment with authentication ## Architecture Overview Voilà runs as a Tornado web server that extends the Jupyter server. When a user requests a notebook, Voilà creates a kernel, executes all cells sequentially, and renders the output as HTML. Interactive widgets use the Jupyter Comms protocol over WebSocket to communicate between the browser and the kernel. The template engine (Jinja2) controls page layout, allowing customization of headers, footers, and styling. Each user session gets its own kernel, providing isolation. ## Self-Hosting & Configuration - Install via pip: `pip install voila` or conda: `conda install -c conda-forge voila` - Run standalone with `voila notebook.ipynb` or serve a directory with `voila ./notebooks/` - Deploy behind JupyterHub by adding Voilà as a server extension - Custom templates go in `share/jupyter/voila/templates/` and are selected with `--template` - Configure execution timeout, allowed downloads, and CORS settings in `voila.json` ## Key Features - Zero frontend code required—any notebook with ipywidgets becomes a dashboard - Template system for custom layouts: gridstack for drag-and-drop grids, flex for responsive designs - Pre-heating option to keep kernels warm and reduce dashboard load time - Static rendering fallback for notebooks without interactive widgets - Works with all Jupyter widget libraries including bqplot, ipyleaflet, and plotly ## Comparison with Similar Tools - **Streamlit** — Python-first app framework; Voilà reuses existing Jupyter notebooks without rewriting code - **Dash** — Plotly's dashboard framework; requires writing a Dash-specific app; Voilà works with standard notebooks - **Panel** — HoloViz dashboarding; Voilà is simpler if you already have Jupyter notebooks - **Gradio** — ML demo builder; Voilà serves general-purpose data dashboards, not just model interfaces - **nbconvert** — exports static HTML; Voilà preserves interactivity through live kernel connections ## FAQ **Q: Do users need Jupyter installed to view a Voilà dashboard?** A: No. Voilà serves a web page—users only need a browser. Jupyter and the kernel run on the server side. **Q: Can I deploy Voilà in production?** A: Yes. Deploy behind a reverse proxy like Nginx, optionally with JupyterHub for authentication and multi-user isolation. Container images are available for Docker and Kubernetes deployments. **Q: How is performance with many concurrent users?** A: Each user session spawns a kernel, so resource usage scales linearly. For high-traffic dashboards, use kernel pre-heating and consider scaling horizontally behind a load balancer. **Q: Can I hide specific cells instead of all code?** A: Yes. Use cell tags (`voila-exclude` or `voila-hide-input`) to selectively hide cells or just their source code while keeping outputs visible. ## Sources - https://github.com/voila-dashboards/voila - https://voila.readthedocs.io --- Source: https://tokrepo.com/en/workflows/asset-3a5c0383 Author: AI Open Source