🚀 SDUI es un enfoque en el que el servidor le da al cliente una descripción de la interfaz (generalmente JSON), y el cliente la dibuja. Cambiamos la interfaz de usuario, cambiamos los datos, no la compilación de la aplicación. Menos lanzamientos, más flexibilidad. ✨
📦 Definición: ¿qué es el SDUI?
Server-Driven UI es cuando el servidor gestiona la estructura y el comportamiento de la interfaz de usuario: envía al cliente un esquema de pantalla (componentes, sus propiedades, acciones). El cliente sabe cómo dibujar bloques básicos y vincularlos a eventos, pero la lógica de diseño y la variabilidad viven en el servidor.
{
"screen": {
"title": "Product of the day",
"blocks": [
{ "type": "image", "src": "https://cdn.example.com/promo.png", "ratio": "1:1", "alt": "Promo" },
{ "type": "text", "style": "h2", "value": "Discount -30%" },
{ "type": "button", "style": "primary", "text": "Buy", "action": { "type": "POST", "url": "/buy?id=42" } }
]
}
}El cliente no tuvo que cambiar el código para dibujar una nueva pantalla, solo dibujó el esquema enviado.

🔍 Cómo funciona paso a paso
El cliente solicita la configuración de la pantalla al servidor.
El servidor devuelve JSON/DSL con el esquema de la interfaz de usuario y las acciones.
El cliente renderiza la interfaz de usuario del esquema y firma los eventos.
Lógica empresarial (A/B, características, condiciones de visualización) — en el servidor.
Esto es especialmente útil para las aplicaciones móviles, donde los lanzamientos están sujetos a moderación.
💡 ¿Por qué es útil el SDUI para el frontender?
Menos lanzamientos: corregimos la interfaz de usuario en el servidor, el cliente recoge los cambios de inmediato.
Experiencia unificada en todas las plataformas: los clientes web y móviles renderizan un esquema.
Experimentos rápidos: Pruebas A/B y feature flags, sin recompilar el cliente.
Enfoque centrado en el contenido y la configuración: el sistema de diseño se puede «subir» a través del esquema.
Experimento sin lanzamiento: el equipo de producto cambia el texto del botón "Comprar" → "Añadir a la cesta" en la respuesta del servidor y observa la conversión el mismo día.
📌 Ejemplo realista de API
El servidor puede dar no solo una lista de bloques, sino también condiciones, enlaces de datos y eventos:
{
"screen": {
"title": "Catalog",
"blocks": [
{ "type": "search", "placeholder": "Find product..." },
{ "type": "list", "items": "{{products}}",
"item": {
"type": "card",
"image": "{{item.image}}",
"title": "{{item.title}}",
"price": "{{item.price}}",
"cta": { "type": "button", "text": "Add", "action": { "type": "POST", "url": "/cart/add", "body": {"id": "{{item.id}}"} } }
}
}
],
"data": { "products": "/api/products?query={{query}}" },
"experiments": { "cta_text": ["Buy", "Add", "Add to cart"] }
}
}Las plantillas {{placeholders}} son sustituidas por el cliente a partir de los datos solicitados en los enlaces.
✅ Ventajas
Reducción del tiempo de comercialización para los cambios de la interfaz de usuario.
Centralización de las reglas de visualización y variaciones de la interfaz.
Sistema de diseño unificado a través de abstracciones de componentes.
⚠️ Desventajas
La depuración es más complicada: los errores son posibles tanto en el esquema como en el cliente.
Requiere disciplina de control de versiones del esquema.
Restricciones a las interacciones «ricas» en el cliente.
🔧 Dónde es especialmente adecuado el SDUI
Aplicaciones móviles con moderación de lanzamientos a largo plazo.
Proyectos con promociones/rediseños frecuentes y pruebas A/B.
Productos multiplataforma (Web + iOS + Android).
🧭 Conclusión
La interfaz de usuario basada en servidor acelera los experimentos de productos y reduce el número de lanzamientos de clientes. Funciona bien cuando la interfaz de usuario cambia a menudo y es necesario implementar rápidamente las variaciones sin volver a empaquetar las aplicaciones. Al mismo tiempo, es importante pensar en el control de versiones de los esquemas y los límites de responsabilidad entre el cliente y el servidor.
📚 ¿Quieres profundizar en el tema?
En el anexo Kodik encontrarás lecciones detalladas sobre diferentes temas, ejercicios paso a paso, análisis de errores y una práctica cómoda directamente en tu teléfono o navegador.
Y si quieres estar al tanto de las noticias, nuevas características y materiales útiles, suscríbete a nuestro Canal de Telegram. Es acogedor, profesional y con amor por el código ❤️
