
NiceGUI
Python framework for building web UIs, dashboards, and control panels on FastAPI and Vue.
About
NiceGUI lets you build browser-based GUIs entirely in Python, pairing a FastAPI backend with a Vue/Quasar frontend you never have to write yourself. It is popular for dashboards, robotics and machine control panels, and ML demos where sliders, plots, 3D scenes, and live data streams need to coexist in one page.
The API is refreshingly direct: create elements like ui.button or ui.plot in Python, bind them to variables, and timers or websockets keep the page live. NiceGUI is MIT licensed and maintained by Zauberzeug, and it can be embedded into existing FastAPI apps, which makes it a pragmatic choice for teams that already live in Python and need more interactivity than a notebook offers.
What it can do
- Python-only UI authoring over FastAPI with live page updates
- Rich element set: plots, 3D scenes, tables, dialogs, markdown
- Two-way data binding and websocket-driven reactivity
- Embeddable in existing FastAPI applications
- Desktop-window packaging via native mode
Setup
pip install nicegui, write a script using the ui module, then run python main.py and open the local URL.
Prerequisites
Python 3.9+; a browser for the frontend.
Use cases
Works with
Trust score — 9/10
Scored 9/10 (verified tier, metrics-v1). Evidence: 16,293 GitHub stars (zauberzeug/nicegui); repo pushed 2026-10-15 (same-day activity); MIT license confirmed in repo; maintained by Zauberzeug; officialUrl https://nicegui.io curl-verified 200; /documentation verified 200. Manual review: FastAPI + Vue/Quasar stack, ui-module API, and embed-in-FastAPI claims verified against official docs. License: MIT.
★ 16,293 GitHub stars
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.