Skip to content

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

  1. From the Hub, click Voila to launch
  2. Voila opens showing your notebook workspace files
  3. Click any .ipynb file to render it as a web app
  4. Share the URL with anyone who needs access

Or launch directly from the Lab:

  1. Open a notebook in AI Notebook Lab
  2. Click Voila in the toolbar (rocket icon)
  3. 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:

  1. Create a template directory in ~/.local/share/jupyter/voila/templates/
  2. Add nbconvert_templates/base.html with your HTML/CSS
  3. Launch Voila with --template=my-template

When to Use Voila

TaskTool
Sharing a notebook result as an appVoila
Building interactive data dashboardsVoila or Superset
BI dashboards with SQL data sourcesSuperset
Sharing analysis with non-technical usersVoila
Keeping notebooks for internal useAI Notebook Lab