Voila
Voila
Turn Jupyter notebooks into interactive web applications — instantly, with no extra code.
Overview
Voila converts your Jupyter notebooks into standalone interactive web apps. The code cells are hidden; only outputs and widgets remain visible. Share a Voila URL and your colleagues get a polished, interactive interface built from your notebook — sliders, dropdowns, charts, and all — without seeing a single line of Python.
Key Features
- One-Click Publishing — Any notebook becomes a web app immediately
- Widget Support — Full ipywidgets compatibility (sliders, dropdowns, text inputs, buttons)
- Interactive Charts — Plotly, Altair, Bokeh, and other interactive viz libraries work out of the box
- No Code Exposure — Code cells hidden; only outputs displayed to end users
- Live Execution — Widgets trigger real code execution, not static snapshots
- Custom Templates — Style your apps with custom HTML/CSS templates
Getting Started
- From the Hub, click Voila to launch
- Voila opens showing your notebook workspace files
- Click any
.ipynbfile to render it as a web app - Share the URL with anyone who needs access
Or launch directly from the Lab:
- Open a notebook in AI Notebook Lab
- Click Voila in the toolbar (rocket icon)
- Your notebook opens as a Voila app in a new tab
Building Notebook Apps
Design your notebook to work well as a Voila app:
Use ipywidgets for interactivity:
import ipywidgets as widgets
from IPython.display import display
slider = widgets.IntSlider(value=50, min=0, max=100, description='Threshold:')
output = widgets.Output()
def on_change(change):
with output:
output.clear_output()
print(f"Selected: {change['new']}")
slider.observe(on_change, names='value')
display(slider, output)Organize cells deliberately:
- Put all imports and setup in early cells
- Use Markdown cells as section headers and explanations
- Place interactive widgets before their outputs
- Keep output cells immediately after the code that generates them
Supported Widget Libraries
- ipywidgets — Core widgets (sliders, buttons, dropdowns, text)
- ipyleaflet — Interactive maps
- bqplot — Interactive charts
- Plotly — Full Plotly figures with interaction
- Altair — Vega-Lite charts
- Bokeh — Streaming and interactive visualizations
Custom Templates
Add a custom template to style your Voila app:
- Create a template directory in
~/.local/share/jupyter/voila/templates/ - Add
nbconvert_templates/base.htmlwith your HTML/CSS - Launch Voila with
--template=my-template
When to Use Voila
| Task | Tool |
|---|---|
| Sharing a notebook result as an app | Voila |
| Building interactive data dashboards | Voila or Superset |
| BI dashboards with SQL data sources | Superset |
| Sharing analysis with non-technical users | Voila |
| Keeping notebooks for internal use | AI Notebook Lab |