PythonNiceGUIWebFastAPI

NiceGUI: crea una aplicación web en Python sin escribir JavaScript

Publicado el 2026-07-05 · Xiliux

Si sabes Python pero el frontend te frena, NiceGUI es una de las mejores noticias de los últimos años: te permite construir aplicaciones web completas —con botones, formularios, gráficos y navegación— usando solo Python.

¿Qué es NiceGUI?

Es un framework construido sobre FastAPI (backend) y Quasar/Vue (frontend). Tú escribes Python; NiceGUI genera la interfaz en el navegador y mantiene sincronizado el estado por ti. No necesitas HTML, CSS ni JavaScript para empezar.

Lo simple que es

Una app con un botón que muestra un mensaje son literalmente cuatro líneas:

from nicegui import ui

ui.button('Saludar', on_click=lambda: ui.notify('¡Hola!'))

ui.run()

La jerarquía de la interfaz se expresa con context managers, que reflejan cómo se anidan los elementos:

with ui.card():
    ui.label('Iniciar sesión').classes('text-xl font-bold')
    usuario = ui.input('Usuario')
    clave = ui.input('Clave', password=True)
    ui.button('Entrar', on_click=lambda: entrar(usuario.value, clave.value))

Añadir estado reactivo, formularios, tablas o rutas (@ui.page('/panel')) es igual de directo.

¿Para qué es ideal?

¿Cuándo NO es la mejor opción?

NiceGUI renderiza en el cliente, así que para sitios donde el SEO del contenido es crítico (un blog, una landing pública que debe posicionar) conviene complementarlo con buenas meta etiquetas y datos estructurados, o valorar renderizado en servidor. Para aplicaciones, dashboards y herramientas internas es una elección excelente y muy productiva.

Rendimiento y despliegue

Una app NiceGUI se despliega como cualquier app de FastAPI/Uvicorn, normalmente detrás de nginx con systemd. Sirve los estáticos desde nginx y usa ui.run(show=False) en producción para no abrir un navegador en el servidor.

¿Quieres una app así?

Este mismo portafolio está hecho con NiceGUI. Si necesitas un MVP, un dashboard o una herramienta interna en Python, escríbeme.

Preguntas frecuentes

¿NiceGUI necesita saber JavaScript?

No para empezar: escribes Python y NiceGUI genera la interfaz en el navegador. Solo bajarías a JS para algo muy específico que el framework no cubra; el grueso de una app interna, dashboard o MVP se hace en Python puro.

¿Para qué es ideal NiceGUI y para qué no?

Ideal: MVPs, dashboards, herramientas internas — donde quieres iterar rápido en Python. Menos ideal: sitios cuyo objetivo es SEO/tráfico orgánico, porque renderiza en cliente por WebSocket y el rastreador no ve el contenido; para eso, HTML de servidor.

¿Cómo se estructura la interfaz?

Con context managers (`with ui.card(): ...`) que reflejan cómo se anidan los elementos: la jerarquía del código ES la jerarquía visual. El estado vive en el servidor y NiceGUI lo sincroniza con el navegador por ti.

¿Sobre qué está construido?

Sobre FastAPI (el backend) y Quasar/Vue (los componentes del navegador). Tú no tocas ninguno directamente: escribes Python y NiceGUI hace de puente.

← Ver más artículosCotizar un proyecto