Beyond local notebooks: Colab, Voila and Quarto

Hosted notebooks for zero setup, Voila for turning a notebook into a dashboard, Quarto for publishing, and the cases where a notebook is the wrong tool.

Hosted notebooks

OptionRuns onWatch out for
Google ColabHosted VM, optional GPUEphemeral storage; the runtime is recycled after idle time
GitHub Codespaces / dev containersYour repository, reproducible imageCost and startup time
JupyterHubYour own clusterYou operate authentication and resource limits
BinderPublic images built from a repoNot for private data; builds are slow and public

Hosted notebooks remove installation friction, which is genuinely valuable for teaching and for one-off GPU work. They also move your data to someone else's machine, which is a decision, not a detail.

⚠️
In a hosted runtime, everything outside the working directory disappears when the session ends. Save notebooks and results to the mounted drive or export them, and never treat the local filesystem as durable storage.

Voila: notebook as application

pip install voila

# hide code cells, show only widgets and outputs
voila dashboard.ipynb --no-browser --port 8866
# tag cells so Voila and nbconvert know what to hide
# View > Cell Toolbar > Tags, then add: hide-input
# or in a cell:
from IPython.display import display, Markdown
display(Markdown("# Sales dashboard"))
  • Voila executes the notebook on every request, so keep the startup path fast and cache expensive work.
  • Widgets keep working because a kernel is still attached; this is why it is the natural home for a widget-heavy notebook.
  • It is a small application server, not an analysis environment: there is no editor, and each visitor runs the notebook.

Quarto, and when to stop using notebooks

quarto render report.qmd --to html
quarto render report.qmd --to pdf
quarto preview report.qmd

Quarto renders Markdown with embedded code chunks into HTML, PDF, Word or slides from a single source, with proper cross-references, citations and a table of contents. For anything that will be read repeatedly by people who do not run code, it is usually a better fit than an .ipynb.

Choose a notebook when the value is the interactive session: exploring data, iterating on a model, teaching. Choose a script or package when the value is the result: scheduled jobs, services, reusable logic. Choose Quarto or a static report when the value is the document. Mixing those purposes in one file is what makes notebooks hard to maintain.

FAQ

Is Colab suitable for work with customer data?
Only if your organisation has explicitly approved it and the data handling terms match your obligations. Otherwise use a self-hosted JupyterHub or a dev container in your own cloud account, where access control and retention are under your control.
Can I turn a notebook into a scheduled job without a rewrite?
Yes: papermill with a parameters cell lets you run it from cron or a scheduler. If the job then grows logic, argument handling and monitoring, promote it into a script or a small package and keep the notebook only for reporting.

Widgets and interactive output Markdown, LaTeX and rich output

Last refreshed 2026-09-18.