# #525: NiceGUI Goes 3.0 Page: https://stenobird.com/podcast/talk-python-to-me/525-nicegui-goes-3-0 Text version: https://stenobird.com/podcast/talk-python-to-me/525-nicegui-goes-3-0.md Podcast: [Talk Python To Me](https://stenobird.com/podcast/talk-python-to-me) Published: 2025-10-27T07:00:00+00:00 Episode link: https://talkpython.fm/episodes/show/525/nicegui-goes-3.0 Audio file: https://talkpython.fm/episodes/download/525/nicegui-goes-3.0.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/talk-python-to-me/episodes/525-nicegui-goes-3-0 Duration seconds: 4666 ## Resource NiceGUI offers a way to build modern, component-based web applications using pure Python without the complexity of a JavaScript frontend. The framework leverages FastAPI and WebSockets to enable real-time, interactive UI updates directly from Python logic. ## Highlights - Main idea: NiceGUI bridges the gap between simple, limited Python UI libraries and complex, high-effort web development frameworks - Technical architecture: The framework operates on a FastAPI backend with a Vue/Quasar frontend, using WebSockets for bi-directional communication - Practical takeaway: Developers can create reactive interfaces by passing Python callables directly to UI event handlers like 'on_click' - Deployment flexibility: Applications can run as local desktop-like tools or be deployed to the cloud behind standard web servers like Uvicorn - Failure mode: While powerful for many use cases, the framework may not be the right choice for developers who prefer writing raw HTML/CSS or require highly custom JS-heavy frontends ## Topics Python, NiceGUI, FastAPI, WebSockets, Vue.js, Quasar Framework, Web Development, User Interface ## Chapters - 7:00 — Origins and Company Growth: The creators discuss the transition from freelance work to establishing a company and hiring their first employees. - 13:00 — Evolution of the Tech Stack: A look at the shift from Angular to Vue and the decision to build on top of FastAPI. - 18:45 — Leveraging FastAPI: Why choosing FastAPI was a natural progression for handling web traffic and server-side logic. - 24:45 — Extending with Components: How NiceGUI integrates independent elements like ECharts and AG Grid alongside Quasar components. - 30:35 — Styling with Tailwind CSS: The ease of adding custom styling to components using Tailwind CSS within the framework. - 36:35 — The Power of Pythonic UI: Demonstrating how minimal Python code can generate complex, interactive UI elements. - 54:15 — Handling Multi-worker Environments: Technical challenges regarding WebSocket connections and state management across multiple server workers. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/talk-python-to-me/episodes/525-nicegui-goes-3-0/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/talk-python-to-me/525-nicegui-goes-3-0.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.