Voilà converts Jupyter notebooks into secure, standalone web applications with interactive widgets.
Voilà is a Python tool that converts Jupyter notebooks into standalone, secure web applications. It preserves notebook interactivity through Jupyter widgets while removing code cells by default, making notebooks shareable as dashboards or tools. It solves the problem of deploying Jupyter notebooks as production applications without exposing underlying code.
Data scientists, researchers, and educators who want to share interactive Jupyter notebooks as web applications without requiring recipients to run Jupyter locally. It's also valuable for teams building internal dashboards from existing notebooks.
Developers choose Voilà because it leverages the existing Jupyter ecosystem, requires minimal configuration, and provides security defaults. Its unique selling point is maintaining notebook interactivity while converting them into secure, deployable web apps.
Voilà turns Jupyter notebooks into standalone web applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Disallows front-end execute requests by default, preventing arbitrary code execution and making deployed apps secure out-of-the-box.
Seamlessly integrates with Jupyter interactive widgets and custom libraries like bqplot, preserving notebook interactivity in web apps.
Works with any Jupyter kernel, including C++ via xeus-cpp, allowing dashboards in multiple programming languages without modification.
Can run as a standalone Tornado application or Jupyter server extension, offering flexible hosting with minimal configuration.
Includes a preview extension for JupyterLab 3.0+, streamlining development by allowing live previews within the familiar IDE.
Each user session spawns a dedicated Jupyter kernel, leading to high memory usage and scalability issues with many concurrent users.
Relies on notebook cell outputs for UI, making advanced layouts or custom CSS difficult without complex template hacking.
Depends on Jupyter protocols and kernels, which can complicate integration with non-Jupyter tools or require additional setup for custom environments.
Strips source cells by default, which may hinder debugging or educational use unless manually disabled with the strip_sources option.