Episode

#525: NiceGUI Goes 3.0

Podcast
Talk Python To Me
Published
Oct 27, 2025
Duration seconds
4666
Processing state
processed
Canonical source
https://talkpython.fm/episodes/show/525/nicegui-goes-3.0
Audio
https://talkpython.fm/episodes/download/525/nicegui-goes-3.0.mp3
JSON
/v1/public/podcasts/talk-python-to-me/episodes/525-nicegui-goes-3-0
Markdown
/podcast/talk-python-to-me/525-nicegui-goes-3-0.md

Actions

  • 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.
  • 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.

Summary

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.

Topics

  • Python
  • NiceGUI
  • FastAPI
  • WebSockets
  • Vue.js
  • Quasar Framework
  • Web Development
  • User Interface

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

Chapters

  1. 7:00 Origins and Company Growth: The creators discuss the transition from freelance work to establishing a company and hiring their first employees.
  2. 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.
  3. 18:45 Leveraging FastAPI: Why choosing FastAPI was a natural progression for handling web traffic and server-side logic.
  4. 24:45 Extending with Components: How NiceGUI integrates independent elements like ECharts and AG Grid alongside Quasar components.
  5. 30:35 Styling with Tailwind CSS: The ease of adding custom styling to components using Tailwind CSS within the framework.
  6. 36:35 The Power of Pythonic UI: Demonstrating how minimal Python code can generate complex, interactive UI elements.
  7. 54:15 Handling Multi-worker Environments: Technical challenges regarding WebSocket connections and state management across multiple server workers.