finds.dev← search

// the find

zauberzeug/nicegui

★ 16,007 · Python · MIT · updated Jul 2026

Create web-based user interfaces with Python. The nice way.

NiceGUI lets you build browser-based UIs entirely in Python, running a FastAPI/Uvicorn backend that syncs state to a Vue/Quasar frontend over WebSockets. It targets the space between "I need a quick dashboard" and "I don't want to write JavaScript" — robotics prototypes, ML experiment controls, smart home panels. At 16k stars it's clearly hit a real nerve with that audience.

The single-worker async model is a sound architectural choice for this use case — no shared memory headaches, and the WebSocket outbox batching means you can hammer the UI from a tight loop without flooding the client. The example library is genuinely wide: ROS2, OpenCV webcam, AG Grid, Redis-backed storage, Stripe — these aren't toy demos. The testing story with pytest integration is better than most Python GUI frameworks bother with. Shipping an `llms.txt` file for AI assistant context is a small but practical touch that signals the maintainers are thinking about real workflows.

Single uvicorn worker is the right call until it isn't — if you need to handle concurrent long-running background tasks (video processing, ML inference) you'll hit the async event loop ceiling fast and the escape hatch is awkward. The Vue/Quasar layer is largely hidden from you, so when you need something the element library doesn't cover, you're writing raw JS/Vue components and bridging them manually, which undercuts the whole premise. Persistence is described as 'easy-to-use per-user' but it's in-memory or file-based by default — anything requiring real multi-instance or crash-safe state needs you to wire in external storage yourself. The framework's tight coupling of layout and logic in Python means large apps tend toward one sprawling file unless you're disciplined about the modularization patterns the examples hint at but don't enforce.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →