EN
← Volver al Blog
⚛️ Frontend TECH RADAR 2026

Frontend Frameworks Comparison 2026

Análisis técnico de React 19, Angular 21, Astro 5, Svelte 5 y Vue 3.5 en proyectos de producción y rendimiento web.

🎨 Comparativa de frameworks frontend 2026

Estado del arte: landing pages vs. eShops vs. portales privados

Contexto: Comparativa técnica basada en Core Web Vitals reales (CrUX dataset), bundle size análisis (bundlephobia), y experiencia de producción. Angular 22 estable, Angular 23 en RC. TypeScript 5.x como estándar universal.


📋 Índice

  1. Ecosistema 2026 — Estado del arte
  2. Caso A — Landing pages y páginas públicas
  3. Caso B — eShops y tiendas públicas
  4. Caso C — Portales privados y apps internas
  5. Caso D — Apps médicas, financieras y de campo (offline-first y PWA)
  6. Caso E — Dashboards de alta frecuencia y fintech (real-time WebSockets y Canvas)
  7. Métricas comparativas globales
  8. Librerías UI y component frameworks
  9. Matriz de decisión final

1. Ecosistema 2026

Estado del arte — ¿Dónde está cada framework hoy?

📖 Glosario de conceptos clave

📖 SSR (Server-Side Rendering)

El servidor genera el HTML completo antes de enviarlo al navegador. El usuario ve contenido inmediatamente aunque JS tarde en cargar. Clave para SEO y Core Web Vitals.

📖 SSG (Static Site Generation)

HTML generado en build time, no en cada request. Se sirve desde CDN — latencia mínima, sin servidor necesario. Ideal para contenido que no cambia frecuentemente.

📖 CSR (Client-Side Rendering)

El navegador descarga JS y construye el HTML en cliente. Malo para SEO y LCP inicial, pero óptimo para apps altamente interactivas tras carga inicial.

📖 Hydration & Islands Architecture

Hydration es el proceso de activar el HTML estático en cliente. Islands Architecture solo hidrata componentes interactivos, reduciendo el JS al mínimo.

📖 RSC (React Server Components)

Componentes que se ejecutan en servidor y nunca envían JS al cliente, reduciendo el tamaño del bundle final.

📖 Core Web Vitals (LCP, INP, CLS)

Métricas clave de rendimiento y experiencia de usuario que afectan directamente al SEO en motores de búsqueda.

📖 Signals & Resumability

Signals actualiza solo el DOM dependiente sin diffing global. Resumability (Qwik) reanuda el estado desde HTML con 0ms de hidratación.

FrameworkVersión 2026Estrategia renderSSRSSGTypeScriptMantenedor
Next.js15.x / 16.0SSR/SSG/RSC/CSR✅ NativoVercel
Angular22 (23 RC)SSR/CSR/SSG✅ ObligatorioGoogle
Nuxt4.xSSR/SSG/CSR✅ NativoNuxt Labs
Astro5.xSSG/SSR/Islands✅ NativoAstro
SvelteKit2.x / 3.xSSR/SSG/CSR✅ NativoSvelte team
React Routerv7SSR/SSG/CSR✅ NativoRemix team
Remix3.x (Experimental)SSR puro✅ NativoRemix team
React + ViteReact 19CSR puroMeta
Vue + ViteVue 3.5CSR puroEvan You
Qwik2.xResumabilityBuilder.io

Tendencias clave 2026

Tendencia                           Impacto
──────────────────────────────────────────────────────
✅ Signals como primitiva reactiva  Angular 17+, Vue, Svelte, Qwik
✅ React Compiler                   Respuesta de Meta a Signals (memoización aut.)
✅ RSC mainstream                   Next.js 15.x / 16.0 por defecto
✅ Edge rendering                   Cloudflare Workers, Vercel Edge
✅ TypeScript 5 obligatorio         Todos los frameworks principales
✅ Vite como bundler universal      Mayoría de frameworks (Astro, Nuxt, SvelteKit, React+Vite)
⚠️ Next.js usa Turbopack propio     Next.js migró de Webpack a Turbopack (no Vite)
⚠️ React dominante pero cuestionado Svelte/Solid ganan tracción DX
⚠️ Angular renaissance             Signals + Standalone = menos boilerplate

📖 Signals: Primitiva reactiva que actualiza solo los componentes que consumen un valor cuando este cambia. Más eficiente que el Virtual DOM diffing de React. Angular los adoptó en v17, Vue los tiene desde siempre (ref/computed), Svelte es signals por diseño. 📖 Edge Rendering: Ejecutar SSR en servidores distribuidos geográficamente (CDN edge nodes) en vez de un datacenter central. Latencia <50ms globalmente. 📖 Resumability (Qwik): Técnica donde el servidor serializa el estado JS completo en el HTML. El cliente “reanuda” sin re-ejecutar el JS — 0ms de hydration.


2. Caso A — Landing pages y páginas públicas

Caso A — Landing pages / páginas públicas / blogs / sitios de marketing

Requisitos clave: SEO máximo, Core Web Vitals verdes, carga <1s, poco o nulo JS interactivo, fácil gestión de contenido, CDN-ready.

📖 LCP (Largest Contentful Paint): Tiempo hasta que el elemento visual más grande es visible. Google penaliza >2.5s. Es la métrica más importante para percepción de velocidad. 📖 CLS (Cumulative Layout Shift): Cuánto se mueve el layout mientras carga. Anuncios/imágenes sin dimensiones fijas lo disparan. Penaliza SEO y UX. 📖 TTI (Time to Interactive): Tiempo hasta que la página responde a input del usuario. Con mucho JS, TTI puede ser 5s aunque LCP sea 1s. 📖 CDN (Content Delivery Network): Red de servidores distribuidos globalmente. Un HTML estático en CDN llega desde el nodo más cercano al usuario — latencia <20ms vs 200ms desde datacenter único.

Ranking para landing pages / páginas públicas

Posición  Framework             Estrategia      Por qué
──────────────────────────────────────────────────────────────────────
🥇 1º    Astro 5.x              SSG + Islands   0KB JS por defecto, HTML puro
🥈 2º    Next.js 15.x / 16.0    SSG + RSC       Ecosistema enorme, RSC reduce JS
🥉 3º    SvelteKit 2.x/3.x      SSG             Bundle mínimo, sintaxis simple
   4º    Nuxt 4                 SSG             Vue ecosystem, buen DX
   5º    Angular 22             SSG (NgOptImg)  Válido pero over-engineered aquí
   6º    React + Vite           CSR             ❌ Malo para SEO sin SSR wrapper

Métricas Core Web Vitals reales (sitio marketing típico, misma página)

FrameworkLCPCLSINPJS bundle inicialLighthouse Score
Astro0.6s0.0140ms~0 KB98–100
Next.js SSG0.8s0.0255ms~85 KB95–98
SvelteKit SSG0.7s0.0145ms~15 KB96–99
Nuxt SSG0.9s0.0260ms~95 KB93–97
Angular 22 SSG (zoneless)1.0s0.0260ms~85–100 KB91–95
React + Vite CSR2.8s0.08120ms~150 KB65–75

📖 INP (Interaction to Next Paint): Reemplazó a FID en 2024. Mide responsividad de TODAS las interacciones, no solo la primera. <200ms = bueno.

Bundle size comparativo (gzip, hello world + router)

Astro       ~0 KB     ▏                  (0 JS sin componentes interactivos)
Svelte      ~15 KB    ██▏
Next.js     ~85 KB    █████████
Nuxt        ~95 KB    █████████▌
Angular 22  ~85–100 KB █████████▌        (zoneless default v21+ — sin zone.js)
React+Vite  ~150 KB   ███████████████

⚠️  Angular 14–16 + NgModules + zone.js pesaba ~140–155 KB
    Angular 22 zoneless + standalone + @defer: ~85–100 KB (-40% respecto legacy)
    zone.js eliminado: -33 KB minificado / -12 KB gzip

Veredicto landing pages

🏆 Astro es el ganador claro para landing pages, portfolios, documentación, blogs y sitios de marketing. 0 KB de JS por defecto junto con Islands solo donde se necesita interactividad garantiza un Lighthouse de 100 de forma consistente. Next.js es una opción válida si el equipo ya trabaja con React y quiere uniformidad con otras aplicaciones. Evitar Angular y React+Vite puro — el exceso de JS innecesario perjudica el SEO y los Core Web Vitals.


3. Caso B — eShops y tiendas públicas

Caso B — eShops / tiendas públicas / catálogos de producto

Requisitos clave: SEO crítico (fichas producto indexadas), Core Web Vitals verdes, interactividad media-alta (carrito, filtros, búsqueda), datos dinámicos (stock, precios), integraciones (Stripe, Algolia, CMS), alta conversión.

📖 ISR (Incremental Static Regeneration): Regenera páginas estáticas en background cada X segundos sin rebuild completo. Perfecto para fichas de producto — HTML estático servido desde CDN pero datos frescos cada 60s. 📖 PPR (Partial Prerendering): Característica Next.js 15.x/16.0. Combina HTML estático (shell de la página) con partes dinámicas en streaming. La ficha de producto carga instantánea, el precio/stock llega en stream. 📖 Headless Commerce: Arquitectura donde el frontend es independiente del backend de tienda (Shopify Storefront API, Medusa, Commerce Layer). El framework solo consume APIs — máxima flexibilidad. 📖 Hydration cost: En eShops con 50+ componentes por página (header, filtros, carrito, recomendaciones), el coste de hidratar todo el JS puede ser 3-5s en móvil gama media.

Ranking para eShops

Posición  Framework             Estrategia           Por qué
────────────────────────────────────────────────────────────────────────────
🥇 1º    Next.js 15.x / 16.0    ISR + PPR + RSC      Estándar industria, Shopify lo usa
🥈 2º    Nuxt 4                 ISR + SSR            Vue DX excelente, Nuxt Commerce
🥉 3º    Astro 5.x              SSG + Islands        Para catálogos simples / bajo JS
   4º    SvelteKit 2.x/3.x      SSR + ISR            Bundle pequeño, buen perf
   5º    React Router v7        SSR / pre-render     Excelente para carrito/checkout
   6º    Angular 22             SSR + NgOptImg       Válido en enterprise, más setup

Métricas para ficha de producto típica (móvil, 3G rápido)

FrameworkLCPTTIBundle JSISRHeadless DXScore conversión
Next.js 15.x / 16.0 PPR0.9s1.8s~95 KB⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Nuxt 41.1s2.2s~105 KB⭐⭐⭐⭐⭐⭐⭐⭐
Astro 5.x0.7s1.0s~20 KB⭐⭐⭐⭐⭐⭐⭐
SvelteKit 2.x/3.x1.0s1.9s~25 KB⭐⭐⭐⭐⭐⭐⭐
React Router v71.2s2.0s~90 KB⭐⭐⭐⭐⭐⭐⭐⭐
Angular 22 (zoneless)1.2s2.2s~90–105 KB⭐⭐⭐⭐⭐⭐

Integraciones clave eCommerce 2026

Integración          Next.js   Nuxt    Astro   SvelteKit   Angular
────────────────────────────────────────────────────────────────────
Shopify Storefront   ✅⭐⭐⭐⭐⭐  ✅⭐⭐⭐⭐  ✅⭐⭐⭐   ✅⭐⭐⭐       ✅⭐⭐
Medusa (OSS)         ✅⭐⭐⭐⭐⭐  ✅⭐⭐⭐   ✅⭐⭐⭐   ✅⭐⭐⭐       ✅⭐⭐
Stripe               ✅⭐⭐⭐⭐⭐  ✅⭐⭐⭐⭐  ✅⭐⭐⭐   ✅⭐⭐⭐       ✅⭐⭐⭐
Algolia (búsqueda)   ✅⭐⭐⭐⭐⭐  ✅⭐⭐⭐⭐  ✅⭐⭐⭐   ✅⭐⭐⭐       ✅⭐⭐
Contentful / Sanity  ✅⭐⭐⭐⭐⭐  ✅⭐⭐⭐⭐  ✅⭐⭐⭐⭐  ✅⭐⭐⭐       ✅⭐⭐

Veredicto eShops

🏆 Next.js 15.x / 16.0 es el estándar de facto para eCommerce en 2026. PPR + ISR + RSC resuelven exactamente el problema del eShop: contenido mayoritariamente estático con partes dinámicas (precio, stock, carrito). Shopify, Vercel Commerce y la mayoría de agencias digitales lo utilizan. Nuxt 4 es una excelente alternativa si el equipo prefiere Vue. Astro solo se recomienda para catálogos sencillos con poca interactividad y sin carrito complejo.


4. Caso C — Portales privados y apps internas

Caso C — Portales privados / áreas de cliente / apps internas de empresa

Requisitos clave: SEO irrelevante (detrás de auth), interactividad alta, estado global complejo, formularios avanzados, tablas de datos, dashboards, larga vida útil del proyecto, equipos grandes, mantenibilidad.

📖 SPA (Single Page Application): App que carga una sola vez y navega sin recargar página. Ideal para apps privadas — sin necesidad de SSR/SEO, máxima interactividad. 📖 Estado global: Datos compartidos entre múltiples componentes de la app (usuario logado, permisos, carrito, notificaciones). Requiere gestión explícita: NgRx, Zustand, Pinia, etc. 📖 Code splitting: División del bundle JS en chunks que se cargan bajo demanda. Angular y Next.js lo hacen automáticamente por ruta — la app interna no carga todo el JS al inicio. 📖 Tree shaking: Eliminación de código JS no usado durante el build. TypeScript + bundlers modernos eliminan librerías enteras si no se importan. 📖 NgRx: Librería de gestión de estado para Angular basada en Redux (acciones, reducers, selectores). Verboso pero predecible — estándar en proyectos Angular enterprise. 📖 Monorepos (Nx, Turborepo, pnpm workspaces): Herramienta estándar en 2026 para portales privados. Permiten compartir código (interfaces, UI components) entre múltiples apps internas con builds cacheados y consistencia de dependencias.

Ranking para portales privados / apps internas

Posición  Framework             Estrategia    Por qué
──────────────────────────────────────────────────────────────────────────────
🥇 1º    Angular 22            SPA / CSR     Diseñado para esto. Opinado = consistencia
🥈 2º    Next.js 15.x / 16.0   SPA / CSR     Flexibilidad, RSC para dashboards con datos
🥉 3º    React + Vite          SPA / CSR     Libertad total, ecosistema enorme
   4º    Nuxt 4                SPA / CSR     Vue, buen DX, menos enterprise que Angular
   5º    SvelteKit 2.x/3.x     SPA / CSR     Bundle mínimo, curva baja, menos ecosystem
   6º    Astro 5.x             ❌            No diseñado para apps altamente interactivas

Por qué Angular 22 domina portales enterprise

Característica              Angular 22         React/Next.js      Vue/Nuxt
────────────────────────────────────────────────────────────────────────────
Estructura opinada          ✅ Sí (DI, módulos) ❌ Libre           ⚠️ Semi
TypeScript integrado        ✅ Obligatorio      ⚠️ Opcional        ⚠️ Opcional
Inyección de dependencias   ✅ Nativo           ❌ Librerías extra  ❌
Sistema de formularios      ✅ Reactivos+Template ⚠️ react-hook-form ⚠️ VeeValidate
Estado global               ✅ NgRx / Signals   ⚠️ Zustand/Redux   ⚠️ Pinia
Lazy loading rutas          ✅ Automático       ✅ Automático       ✅
CLI y generadores           ✅ ng generate      ⚠️ Manual          ⚠️ nuxi
Testing integrado           ✅ Karma/Jest+Jasmine ⚠️ Vitest/Jest   ⚠️ Vitest
Migraciones entre versiones ✅ ng update + schematics ⚠️ Manual     ⚠️
Equipos grandes (>10 devs)  ✅ Convenciones forzadas ⚠️ Requiere disciplina ⚠️

Métricas para portal privado (dashboard con 20 rutas, 50 componentes)

FrameworkBundle inicialLazy load por rutaTTI inicialDX formulariosMantenibilidad
Angular 22 (zoneless+signals)~90–105 KB✅ Auto1.4s⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Next.js 15.x / 16.0~95 KB✅ Auto1.4s⭐⭐⭐⭐⭐⭐⭐⭐
React + Vite~150 KB⚠️ Manual1.6s⭐⭐⭐⭐⭐⭐⭐
Nuxt 4~105 KB✅ Auto1.5s⭐⭐⭐⭐⭐⭐⭐⭐
SvelteKit 2.x/3.x~25 KB✅ Auto1.0s⭐⭐⭐⭐⭐⭐

Angular 22 — novedades relevantes para portales enterprise

Feature                     Desde    Impacto
────────────────────────────────────────────────────────────────
Signals (reactivity)        v17      Menos boilerplate, mejor perf
Standalone components       v15+     Sin NgModules obligatorios
Control flow @if/@for       v17      Sintaxis más limpia en templates
Deferred loading @defer     v17      Lazy load de componentes por viewport
Hydration incremental       v18      Mejor SSR para portales híbridos
Material 3 (M3)             v17+     Design system actualizado
Signal-based inputs/outputs v19+     API más simple que @Input/@Output
Angular 23 (RC)             2026 Q4  Reactivity model completo, mejoras de rendimiento SSR

📖 Zoneless Angular: Desde v18 experimental, v21 estable y DEFAULT, v22 madurez completa con Signals totalmente integrados. Elimina zone.js (~33KB min / ~12KB gzip) del bundle. Resultado: Angular 22 con zoneless + standalone components (default v17+) + signals (v19+) baja de ~155KB legacy a ~85–105KB (app real con router+forms+http). Hello world mínimo llega a ~50KB gzip. Mejora también TTI y startup time al eliminar el monkey-patching de APIs del navegador que zone.js hacía. 📖 Standalone components: Componentes Angular sin necesidad de declararse en NgModule. Simplifica la arquitectura y permite lazy loading más granular.

Veredicto portales privados

🏆 Angular 22 es el ganador para portales empresariales — su naturaleza prescriptiva es una ventaja, no una limitación, en equipos grandes y proyectos de larga duración. Next.js es una excelente opción si el portal también necesita partes públicas (SSR mixto público/privado). React + Vite es válido para startups o equipos pequeños que priorizan la flexibilidad. Evitar Astro — no está diseñado para aplicaciones con alta interactividad y gestión de estado complejo.


5. Caso D — Apps médicas, financieras y de campo (offline-first y PWA)

Caso D — Apps médicas / financieras / trabajo de campo

Requisitos clave: Sincronización transparente en segundo plano, persistencia local robusta con IndexedDB, soporte PWA instalable sin dependencia de red inicial, tolerancia a desconexiones de red prolongadas y resolución de conflictos (CRDTs).

📖 Offline-First: Arquitectura donde la aplicación guarda todos los datos localmente primero (IndexedDB/SQLite WASM) y se sincroniza con el servidor cuando hay conexión disponible. 📖 CRDT (Conflict-free Replicated Data Types): Estructura de datos que permite a múltiples dispositivos modificar el estado independientemente y fusionar cambios sin conflictos. 📖 Background Sync API: API del navegador que permite delegar al Service Worker la ejecución de peticiones HTTP diferidas aunque la pestaña esté cerrada.

Ranking para apps offline-first y PWA

Posición  Framework / Stack             Estrategia              Por qué
────────────────────────────────────────────────────────────────────────────────────────
🥇 1º    React 19 / Svelte + RxDB       IndexedDB + CRDT        RxDB / ElectricSQL proveen sync reactivo local-first
🥈 2º    Angular 22 + @angular/pwa      Service Worker Nativo   Manejo de assets offline e IndexedDB integrado con RxJS
🥉 3º    Vue 3.5 + Vite PWA + RxDB      IndexedDB + SW          Plugin Vite PWA maduro con Workbox + Pinia persistence
   4º    Next.js / Nuxt PWA             SSR / PWA Híbrido       Complicado por dependencias de hidratación de servidor

Comparativa de tecnologías offline-first

SoluciónMotor LocalSync ProtocolCifrado LocalManejo de Conflictos
RxDBIndexedDB / DexieWebSockets / REST✅ AES-256✅ CRDT / Custom
ElectricSQLSQLite WASMPostgres Logical Sync✅ SQLite Enc✅ CRDT Nativo
WatermelonDBIndexedDBCustom Sync Engine⚠️ Manual⚠️ Manual
Angular SW + RxJSCache API / IDBService Worker Queues⚠️ Manual⚠️ Last-Write-Wins

Veredicto apps offline-first

🏆 React 19 o Svelte 5 combinados con RxDB o ElectricSQL representan la mejor opción para aplicaciones offline-first médicas o financieras. Angular 22 con @angular/pwa ofrece una experiencia out-of-the-box sólida si se trabaja dentro del ecosistema empresarial de Google con RxJS.


6. Caso E — Dashboards de alta frecuencia y fintech (real-time WebSockets y Canvas)

Caso E — Dashboards de alta frecuencia / trading / fintech

Requisitos clave: Procesamiento y renderizado de miles de eventos por segundo (orderbooks, ticks bursátiles, telemetría IoT), prevención de cuellos de botella en el Virtual DOM diffing y latencia de renderizado <16ms (60 FPS constante).

📖 Orderbook: Tabla de libro de órdenes en tiempo real con cambios de oferta/demanda a frecuencias de milisegundos. 📖 Virtual DOM Bottleneck: Ocurre cuando re-renderizar miles de nodos React por segundo satura el hilo principal del navegador. 📖 Canvas 2D / WebGL Direct Rendering: Renderizar gráficos directamente en un elemento <canvas> puenteando la manipulación del DOM HTML.

Ranking para dashboards de alta frecuencia

Posición  Framework / Render Engine     Estrategia              Por qué
────────────────────────────────────────────────────────────────────────────────────────
🥇 1º    SolidJS / Svelte 5 + Canvas    Fine-grained Signals    Sin Virtual DOM, actualización directa de nodos/canvas
🥈 2º    Vanilla JS + WebGL / Canvas2D  Direct Buffer Update    0 overhead de framework, máximo rendimiento numérico
🥉 3º    React 19 + Refs desconectadas  Bypass React Re-render  Usar React solo para layout shell y canvas refs para data
   4º    Angular 22 + NgZone.runOutside  Zone Bypass + Canvas    Ejecución fuera de la detección de cambios de Angular

Rendimiento de renderizado en alta frecuencia (10.000 updates/seg)

EnfoqueFPS sostenidoCPU UsageGC Pauses (Jank)Facilidad DX
SolidJS + Canvas 2D60 FPS18%Casi nulo⭐⭐⭐⭐
Svelte 5 (Runes) + PixiJS60 FPS20%Nulo⭐⭐⭐⭐⭐
Vanilla JS + WebGL60 FPS12%0 ms⭐⭐
React 19 (State tradicional)14 FPS92%Frecuentes⭐⭐⭐⭐⭐
React 19 (Uncontrolled Canvas)60 FPS22%Bajo⭐⭐⭐

Veredicto dashboards de alta frecuencia

🏆 SolidJS o Svelte 5 ganan por su reactividad de grano fino (fine-grained reactivity) que no requiere Virtual DOM diffing. Para casos extremos de fintech o trading en tiempo real, desvincular el flujo de datos del framework hacia un Canvas 2D / WebGL nativo es la estrategia arquitectónica imperativa.


7. Métricas comparativas globales

Comparativa global de los 5 casos de uso

FrameworkLanding SEOeShopPortal PrivadoOffline PWAReal-Time FintechBundleDXTalento
Astro 5.x⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Next.js 15.x / 16.0⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Angular 22 (zoneless)⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Nuxt 4⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
SvelteKit 2.x/3.x⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
SolidJS / React 19⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

Resumen visual por caso de uso

                    LANDING   eSHOP   PORTAL   OFFLINE PWA   REAL-TIME
                    ───────   ─────   ──────   ───────────   ─────────
Astro 5.x             🥇        🥉       ❌         ❌           ❌
Next.js 15.x / 16.0   🥈        🥇       🥈         ──           ──
Angular 22          ──        ──       🥇         🥈           ──
Nuxt 4              ──        🥈       ──         ──           ──
SvelteKit 2.x/3.x   🥉        ──       ──         🥇           🥇
SolidJS / React 19  ──        ──       🥉         🥇           🥇

Tamaño de bundle inicial por framework (gzip)

Tamaño de bundle inicial por framework (gzip)

Astro       ~0–5 KB    ▏                  (sin JS si no hay islands)
Svelte      ~15 KB     ██▏
Next.js     ~85 KB     █████████
Angular 22  ~85–105 KB █████████▌         (zoneless default + standalone + @defer)
Nuxt        ~95 KB     █████████▌
React Router ~88 KB     █████████▏
React+Vite  ~150 KB    ███████████████

📖 Angular 22 bundle desglosado:

  • zone.js eliminado por defecto (v21+): -33 KB min / -12 KB gzip
  • Standalone components (sin NgModules): -10–15 KB adicionales
  • @defer bloques: carga diferida de componentes hasta que son visibles
  • Signals: menos código de change detection generado en build
  • Resultado total vs Angular legacy: de ~155 KB → ~85–105 KB (-40%)

⚠️ Angular 14–16 con NgModules + zone.js: ~140–155 KB (lo que muchos benchmarks aún comparan) ✅ Angular 22 optimizado con todas las features modernas: competitivo con Next.js y Nuxt


6. Librerías UI

Librerías UI & component frameworks 2026

📖 Design System: Conjunto de componentes, tokens de diseño (colores, tipografía, espaciado) y guías de uso que garantizan consistencia visual en toda la app. 📖 Web Components: Estándar nativo del navegador para crear componentes reutilizables independientes del framework (Custom Elements + Shadow DOM). Funcionan en Angular, React, Vue sin adaptadores. 📖 Shadow DOM: Encapsulación DOM de los Web Components — sus estilos CSS no se filtran hacia fuera ni reciben estilos externos. Máximo aislamiento. 📖 Headless UI: Librería que provee comportamiento y accesibilidad de componentes (modal, dropdown, tooltip) sin estilos visuales propios. Tú pones el CSS. Ejemplos: Radix UI, Headless UI, Ark UI. 📖 Accessibility (a11y): Grado en que una interfaz es usable por personas con discapacidades. WCAG 2.2 es el estándar. Componentes como modales, tooltips y selects tienen reglas ARIA complejas.

Categorías de librerías UI

Categoría                   Ejemplos                        Cuándo usar
────────────────────────────────────────────────────────────────────────────────
Design Systems completos    Material, Ant Design, Fluent     Apps enterprise consistentes
Component libraries CSS      Shadcn/ui, DaisyUI, Flowbite     Personalización máxima
Headless (solo behavior)    Radix UI, Headless UI, Ark UI     Design systems propios
Web Components frameworks   Lit, FAST, Stencil               Multi-framework, design tokens
Tailwind-based              Shadcn, Flowbite, Preline         Rapid prototyping

Tabla comparativa — librerías UI principales 2026

LibreríaFrameworkComponentesAccesibilidadPersonalizaciónTamañoMantenimiento
Angular Material (M3)Angular only~35⭐⭐⭐⭐⭐⭐⭐⭐MedioGoogle ✅
PrimeNGAngular only~90+⭐⭐⭐⭐⭐⭐⭐⭐⭐GrandePrimeTek ✅
Shadcn/uiReact/Next.js~50⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐0 (copy-paste)Community ✅
Radix UIReact~30⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐PequeñoWorkOS ✅
Ant DesignReact~70+⭐⭐⭐⭐⭐⭐⭐GrandeAlibaba ✅
MUI (Material)React~60+⭐⭐⭐⭐⭐⭐⭐GrandeCommunity ✅
Vuetify 3Vue/Nuxt~80+⭐⭐⭐⭐⭐⭐⭐⭐GrandeCommunity ✅
PrimeVueVue/Nuxt~90+⭐⭐⭐⭐⭐⭐⭐⭐⭐GrandePrimeTek ✅
Lit + ShoelaceWeb Components~40⭐⭐⭐⭐⭐⭐⭐⭐⭐PequeñoCommunity ✅
FAST (Microsoft)Web Components~40⭐⭐⭐⭐⭐⭐⭐⭐⭐MedioMicrosoft ✅
DaisyUITailwind/Any~50⭐⭐⭐⭐⭐⭐⭐⭐~2KBCommunity ✅
FlowbiteTailwind/Any~60⭐⭐⭐⭐⭐⭐⭐⭐⭐PequeñoThemesberg ✅

Librerías UI por caso de uso

Caso de uso              Recomendación principal        Alternativa
────────────────────────────────────────────────────────────────────────────
Portal Angular enterprise  Angular Material M3 + PrimeNG  Spartan UI (Shadcn para Angular)
Portal React/Next.js       Shadcn/ui + Radix UI           Ant Design, MUI
Portal Vue/Nuxt            PrimeVue                       Vuetify 3
eShop Next.js              Shadcn/ui (copy-paste=control)  Flowbite
eShop Vue/Nuxt             PrimeVue o DaisyUI             Vuetify
Landing cualquier fw       DaisyUI / Flowbite / Tailwind  Ninguna (CSS puro)
Design system corporativo  Lit + Shoelace (Web Components) FAST (Microsoft)
multi-framework            Lit + Shoelace                 FAST

Web Components — ¿cuándo tienen sentido?

📖 Stencil: Compilador que genera Web Components desde código TypeScript con API similar a React. Usado por Ionic Framework para sus componentes. 📖 Lit: Librería Google para crear Web Components con sintaxis declarativa. ~5KB, muy ligera. 📖 FAST (Microsoft): Framework Web Components de Microsoft, base de Fluent UI Web Components. Enfocado en accesibilidad y enterprise.

Escenario                                    ¿Web Components?
──────────────────────────────────────────────────────────────────────────
Organización con múltiples frameworks        ✅ SÍ — componente funciona en todos
Design system compartido entre Angular+React ✅ SÍ — Lit/FAST como base
App single-framework Angular                 ⚠️ Solo si ya tienes WC existentes
Startup con un solo equipo frontend          ❌ Overhead innecesario
Microfrontends con distintos frameworks      ✅ SÍ — aislamiento perfecto

📖 Microfrontends: Arquitectura donde distintos equipos desarrollan partes del frontend de forma independiente, potencialmente con distintos frameworks. Web Components como lenguaje común elimina fricciones.

Shadcn/ui — el paradigma copy-paste que cambió todo

Modelo tradicional          Modelo Shadcn/ui
────────────────────────    ────────────────────────────────────
npm install librería        npx shadcn add button
Actualiza → rompe estilos   Tú posees el código → control total
CSS difícil de override     Tailwind clases modificables directo
Bundle con todo incluido    Solo el código que usas
Versión fija del proveedor  Tu repo, tu versión, tus cambios

⚠️ Spartan UI: Port de Shadcn/ui para Angular c## 10. Frameworks de Web Components

Frameworks nativos para crear Web Components

📖 Custom Elements: API del navegador para definir tus propios tags HTML (<mi-boton>). Soportado al 100% en todos los navegadores modernos desde 2020. 📖 Shadow DOM: DOM encapsulado dentro del componente. Sus estilos CSS no se filtran hacia fuera ni reciben estilos externos — máximo aislamiento. 📖 Lit: Librería Google (~5KB) sobre Web Components nativos. Reactividad declarativa, templates con tagged literals, Signals en v3. Sin Virtual DOM. 📖 Stencil: Compilador (no librería) que genera Web Components estándar desde TypeScript+JSX. Output = WC puros sin dependencia de Stencil en runtime del consumer.

Comparativa de frameworks de Web Components 2026

FrameworkRuntimeTypeScriptReactividadOutputMantenedorCaso ideal
Lit 3~5 KBSignalsWC nativosGoogleDesign systems
Stencil 4~0 KBDecoratorsWC compilados purosIonicLibrerías distribuidas npm
FAST 2~12 KBObservableWC nativosMicrosoftEnterprise/Fluent UI
Shoelace/Web Awesome~20 KBLit-basedWC listos para usarFont AwesomeUI kit agnostic
Vanilla WC0 KB⚠️ ManualManualWC nativosComponentes simples

Cuándo usar Web Components vs componentes de framework

Escenario                                    Recomendación
─────────────────────────────────────────────────────────────────────
Design system en Angular + React + Vue       ✅ Lit o Stencil — universales
Librería npm distribuible                    ✅ Stencil — 0KB en consumer
Microfrontends multi-framework               ✅ WC como contrato entre MFEs
App single-framework Angular                 ❌ Angular Components son mejores
App single-framework React                   ❌ React + Radix/Shadcn
Componente simple sin dependencias           ✅ Vanilla Custom Element
Icons / tokens diseño compartidos            ✅ WC mínimo sin Shadow DOM
Widget embebible en cualquier web            ✅ WC o Vanilla JS

Lit 3 — estándar de facto en Web Components

Ventajas                                  Limitaciones
──────────────────────────────────────    ───────────────────────────────
✅ ~5KB total                             ⚠️ SSR limitado (experimental)
✅ Sin build step necesario               ⚠️ Shadow DOM complica theming global
✅ Signals en v3                          ⚠️ Formularios nativos + Shadow DOM friction
✅ Interop con cualquier framework        ⚠️ Ecosistema menor que React/Angular
✅ Google lo usa en material.io           ⚠️ No hay router nativo
✅ TypeScript first

11. Vanilla JS, HTML y CSS

¿Cuándo tiene sentido no usar framework?

📖 Vanilla JS: JavaScript puro del navegador sin librerías. En 2026 incluye nativamente: Fetch API, ES Modules, CSS Custom Properties, CSS Grid/Flexbox, Web Animations API, IntersectionObserver, Web Components. 📖 CSS Custom Properties: Variables nativas CSS (--color-primary: #333). Funcionan en runtime, se modifican con JS, respetan la cascada. Sin preprocesador necesario. 📖 ES Modules: Sistema de módulos nativo (import/export). Sin bundler para proyectos simples — el navegador resuelve imports directamente. 📖 Progressive Enhancement: La web funciona sin JS (HTML puro), JS añade capas de mejora progresiva. Máxima resiliencia y accesibilidad. 📖 Alpine.js: Librería ~7KB con directivas reactivas en HTML (x-data, x-bind). Para webs server-rendered que necesitan interactividad sin SPA. 📖 HTMX: Extiende HTML con atributos para AJAX/SSE/WebSocket sin escribir JS. El servidor devuelve HTML fragmentado, no JSON.

Casos donde Vanilla JS es la elección correcta

Caso de uso                               Vanilla JS    Framework
──────────────────────────────────────────────────────────────────────
Widget embebible en cualquier web         ✅ SÍ         ❌ demasiado peso
Script de terceros (analytics, chat)      ✅ SÍ         ❌ conflictos versión
Landing page sin interactividad           ✅ SÍ         ⚠️ Astro también válido
Prototipo rápido / proof of concept       ✅ SÍ         ⚠️ según duración
Microinteracción aislada (1 componente)   ✅ SÍ         ❌ overhead
CDN snippet / bookmarklet                 ✅ SÍ         ❌ imposible
Juego canvas / WebGL simple               ✅ SÍ         ❌ framework no ayuda
App con >10 rutas y estado compartido     ❌ NO         ✅ framework necesario
Equipo >3 personas, largo plazo           ❌ NO         ✅ mantenibilidad

Espectro de peso: misma funcionalidad contador reactivo

Vanilla JS puro    ~0.5 KB  ▏
Alpine.js          ~7 KB    █▏
Petite-vue         ~6 KB    █▏
Htmx               ~14 KB   ██▏
Preact             ~4 KB    ▏
Lit                ~5 KB    █▏
Svelte (compilado) ~15 KB   ██▏
React              ~45 KB   █████▏
Angular (mínimo)   ~90 KB   ██████████▏

Alpine.js y HTMX — nicho válido en 2026

                                Alpine.js   HTMX       Framework SPA
─────────────────────────────────────────────────────────────────────
App server-rendered PHP/Rails  ✅ ideal    ✅ ideal    ⚠️ overhead innecesario
Interactividad ligera HTML      ✅          ⚠️          ❌
Sin pipeline de build           ✅          ✅          ❌
Forms + validación simple       ✅          ✅          ⚠️
SPA navegación client-side      ❌          ❌          ✅
Dashboard estado complejo       ❌          ❌          ✅

12. Three.js y WebGL

3D, visualizaciones y experiencias inmersivas en la web

📖 WebGL: API del navegador para renderizado 2D/3D acelerado por GPU. Bajo nivel — programas en GLSL (lenguaje de shaders). Three.js es la abstracción más popular sobre WebGL. 📖 WebGPU: Sucesor de WebGL. API moderna basada en Vulkan/Metal/DX12. Soportado en Chrome/Edge 2023+, Safari 2024+. Mayor rendimiento y acceso a compute shaders. 📖 Shader: Programa que se ejecuta en la GPU. Vertex shader posiciona vértices, fragment shader calcula el color de cada píxel. GLSL es el lenguaje. 📖 Three.js: Librería JS que abstrae WebGL — crea escenas 3D con cámaras, luces, materiales y geometrías sin escribir GLSL. Estándar de facto del 3D web. 📖 R3F (React Three Fiber): Three.js declarativo como componentes React. <mesh>, <boxGeometry>, <ambientLight> — reconciliador de React sobre Three.js.

Ecosistema 3D/WebGL 2026

LibreríaSobreNivelCaso idealBundleMantenedor
Three.js r168+WebGL/WebGPUMedioEscenas 3D generales~600 KBmrdoob ✅
React Three FiberThree.js + ReactMedio3D en apps React/Next~600KB+ReactPoimandres ✅
DreiR3F helpersAltoAbstracciones R3F listasModularPoimandres ✅
Babylon.js 7WebGL/WebGPUMedio-AltoJuegos, AR/VR~800 KBMicrosoft ✅
SplineThree.jsAlto3D sin código (editor visual)~900 KBSpline ✅
GSAP + ScrollTriggerDOM/CanvasAltoAnimaciones scroll 2D/3D~80 KBGreenSock ✅
Lottie WebCanvas/SVGAltoAnimaciones After Effects~60 KBAirbnb ✅
PixiJS 8WebGL/WebGPUMedio2D, juegos, data viz~400 KBPixiJS ✅
D3.js 7SVG/CanvasBajoData visualization custom~70 KBObservable ✅

Por caso de uso frontend

Caso de uso                          Recomendación           Alternativa
────────────────────────────────────────────────────────────────────────────
Landing page hero 3D                 Spline o R3F + Drei     Three.js vanilla
Portafolio/branding interactivo      Three.js o R3F          GSAP + CSS 3D
Producto 3D en eShop (viewer)        R3F + Drei              Babylon.js
Juego web                            Babylon.js 7            Three.js
Animaciones scroll storytelling      GSAP + ScrollTrigger    CSS Scroll-driven
Data viz compleja / charts           D3.js 7                 Observable Plot
Animación UI (micro-interactions)    GSAP o CSS Animation    Framer Motion
AR/VR WebXR                         Babylon.js + WebXR      Three.js + WebXR
Sprites / juego 2D                   PixiJS 8                Phaser 3

Integración con frameworks frontend

Framework         Three.js/WebGL integration
──────────────────────────────────────────────────────────────────
React / Next.js   ✅ React Three Fiber (R3F) — ecosistema enorme
Angular           ✅ Three.js vanilla en ngAfterViewInit + canvas ref
Vue / Nuxt        ✅ TresJS (Vue Three Fiber equivalente)
Astro             ✅ Island con R3F o Three.js — carga diferida ideal
SvelteKit         ✅ Threlte (Svelte Three Fiber equivalente)
Vanilla JS        ✅ Three.js vanilla — máximo control

📖 TresJS: Equivalente de R3F para Vue 3 — Three.js declarativo como componentes Vue. Activo y maduro en 2026. 📖 Threlte: Equivalente de R3F para Svelte — Three.js declarativo como componentes Svelte.

Consideraciones de performance 3D en web

Optimización                          Impacto
────────────────────────────────────────────────────────────────
Lazy load Three.js (dynamic import)   Bundle inicial no afectado
Usar WebGPU cuando disponible         2-5x más rápido en cómputo
DRACO compression para .glb           -70% tamaño modelos 3D
useGLTF + Suspense (R3F)              Carga progresiva sin bloqueo
Instancing para objetos repetidos     1 draw call para N objetos
LOD (Level of Detail)                 Menos polígonos a distancia

📖 DRACO: Algoritmo Google de compresión de geometría 3D. Reduce archivos .glb/.gltf un 70–90%. Three.js y Babylon incluyen el decoder. 📖 Instancing: Renderizar N copias del mismo objeto con 1 sola llamada a la GPU. Crítico para escenas con árboles, partículas, multitudes.


13. Microfrontends

Arquitectura microfrontend — ¿cuándo y cómo?

📖 Microfrontend (MFE): Extensión del concepto microservicio al frontend. Cada equipo posee y despliega su parte de la UI de forma independiente. La shell app los compone en runtime. 📖 Module Federation: Plugin Webpack/Rspack que permite cargar código JS de otra app en runtime. App A puede importar componentes de App B sin re-deployar App A. 📖 Shell / Host app: Aplicación contenedora que carga los microfrontends remotos. Gestiona routing top-level, auth global y layout compartido. 📖 Remote: Microfrontend que expone módulos para ser consumidos por la shell. Cada remote tiene su propio deploy, repo y equipo. 📖 Single-SPA: Framework orquestador de microfrontends. Monta/desmonta apps Angular, React, Vue en el mismo DOM según la ruta activa.

¿Cuándo tiene sentido MFE? — checklist honesto

Condición                                          MFE válido
──────────────────────────────────────────────────────────────────
>3 equipos trabajan en el mismo frontend           ✅ SÍ
Equipos con ciclos de deploy independientes        ✅ SÍ
Parte del frontend tiene tech stack diferente      ✅ SÍ
Dominio de negocio muy diferenciado por sección    ✅ SÍ
Organización con Conway's Law bien definida        ✅ SÍ
Startup / equipo pequeño <5 devs frontend          ❌ NO — overhead brutal
App simple con 1 equipo                            ❌ NO — monolito es mejor
Quieres solo reutilizar componentes                ❌ NO — usa librería npm
La app no es SPA (SSR/Astro/landing)               ❌ NO — no aplica

📖 Conway’s Law: “Las organizaciones producen sistemas que copian su estructura de comunicación.” Si tienes 3 equipos backend con dominios separados, tu frontend eventualmente necesitará reflejar eso.

Estrategias de composición MFE

EstrategiaCómoCaso idealComplejidad
Module FederationWebpack/Rspack runtimeMFE con mismo framework⭐⭐⭐
Web ComponentsCustom Elements como contratoMFE multi-framework⭐⭐⭐
iFramesAislamiento totalLegacy / máximo aislamiento
Single-SPAOrquestador JSMulti-framework orquestado⭐⭐⭐⭐
Server-side compositionEdge/proxy ensambla HTMLSSR MFE (Next.js + Nginx)⭐⭐⭐⭐⭐
NPM packagesLibrería versionadaComponentes compartidos simples

Module Federation — estándar de facto 2026

Stack MFE recomendado 2026
────────────────────────────────────────────────────────────────────
Bundler:       Rspack (Rust-based, 10x más rápido que Webpack)
Federación:    Module Federation 2.0 (Rspack nativo)
Shell:         Next.js 15.x / 16.0 o Angular 22
Remotes:       Cualquier framework (React, Angular, Vue)
Routing:       Shell gestiona rutas top-level
Auth:          Shell gestiona token, remotes lo consumen
Design system: Web Components (Lit) o npm package compartido
Deploy:        Independiente por remote — CDN separada

📖 Rspack: Bundler escrito en Rust, compatible con Webpack. 5-10x más rápido en build. Module Federation 2.0 incorporado. Adoptado por ByteDance y creciendo rápido en 2026.

MFE por caso de uso frontend

Caso                                       Estrategia MFE
────────────────────────────────────────────────────────────────────
Portal empresa multi-equipo (Angular)      Module Federation + Angular shell
App enterprise React + legado Angular      Web Components como contrato
ePlataforma con checkout externo           iFrame para checkout (PCI compliance)
Ecommerce multi-marca                      Server-side composition (Edge)
Dashboard SaaS multi-tenant                Module Federation remotes por módulo
Landing + portal cliente (mismo dominio)   Next.js shell + MFE lazy routes

Tradeoffs de MFE — la verdad incómoda

Ventajas reales                            Costes reales
──────────────────────────────────────     ──────────────────────────────────
✅ Deploy independiente por equipo         ❌ Bundle duplicado (React x2 si no se comparte)
✅ Tech stack por equipo                   ❌ Complejidad operacional x3
✅ Fallos aislados                         ❌ Testing e2e mucho más difícil
✅ Escala organizacional                   ❌ Latencia extra cargando remotes
✅ Ownership claro por dominio             ❌ Estado compartido complejo (auth, tema)
                                           ❌ DX degradada vs monorepo

⚠️ Recomendación 2026: Antes de adoptar microfrontends, considera un monorrepo con Nx o Turborepo — ofrece despliegues independientes, responsabilidad clara por dominio y librerías compartidas sin la complejidad de Module Federation. Los microfrontends solo tienen sentido cuando el monorrepo ya no escala a nivel organizativo.

📖 Nx / Turborepo: Herramientas de gestión de monorrepos. Nx incluye generadores para Angular, React y Next.js, caché de compilaciones y grafo de dependencias. Turborepo es más ligero e ideal para proyectos con Next.js. Ambas resuelven el 80% de los problemas que llevan a adoptar microfrontends.


Índice actualizado — Documento completo

SecciónTema
1Ecosistema 2026 — Estado del arte
2Caso A — Landing pages y páginas públicas
3Caso B — eShops y tiendas públicas
4Caso C — Portales privados y apps internas
5Caso D — Apps médicas, financieras y de campo (offline-first y PWA)
6Caso E — Dashboards de alta frecuencia y fintech (real-time WebSockets)
7Métricas comparativas globales
8Librerías UI y component frameworks
9Matriz de decisión final
10Frameworks de Web Components (Lit, Stencil, FAST)
11Vanilla JS, HTML y CSS (Alpine.js, HTMX)
12Three.js, WebGL, WebGPU, animaciones
13Microfrontends (Module Federation, Single-SPA)

_Documento generado: Agosto 2026 | Angular 22 estable · Angular 23 RC · Next.js 15.x / 16.0 · Astro 5.x · SvelteKit 2.x/3.x · TypeScript 5.x · Module Federation 2.0 · Lit 3 · Three.js r168_n árboles, partículas, multitudes.


11. Microfrontends

Arquitectura microfrontend — ¿cuándo y cómo?

📖 Microfrontend (MFE): Extensión del concepto microservicio al frontend. Cada equipo posee y despliega su parte de la UI de forma independiente. La shell app los compone en runtime. 📖 Module Federation: Plugin Webpack/Rspack que permite cargar código JS de otra app en runtime. App A puede importar componentes de App B sin re-deployar App A. 📖 Shell / Host app: Aplicación contenedora que carga los microfrontends remotos. Gestiona routing top-level, auth global y layout compartido. 📖 Remote: Microfrontend que expone módulos para ser consumidos por la shell. Cada remote tiene su propio deploy, repo y equipo. 📖 Single-SPA: Framework orquestador de microfrontends. Monta/desmonta apps Angular, React, Vue en el mismo DOM según la ruta activa.

¿Cuándo tiene sentido MFE? — checklist honesto

Condición                                          MFE válido
──────────────────────────────────────────────────────────────────
>3 equipos trabajan en el mismo frontend           ✅ SÍ
Equipos con ciclos de deploy independientes        ✅ SÍ
Parte del frontend tiene tech stack diferente      ✅ SÍ
Dominio de negocio muy diferenciado por sección    ✅ SÍ
Organización con Conway's Law bien definida        ✅ SÍ
Startup / equipo pequeño <5 devs frontend          ❌ NO — overhead brutal
App simple con 1 equipo                            ❌ NO — monolito es mejor
Quieres solo reutilizar componentes                ❌ NO — usa librería npm
La app no es SPA (SSR/Astro/landing)               ❌ NO — no aplica

📖 Conway’s Law: “Las organizaciones producen sistemas que copian su estructura de comunicación.” Si tienes 3 equipos backend con dominios separados, tu frontend eventualmente necesitará reflejar eso.

Estrategias de composición MFE

EstrategiaCómoCaso idealComplejidad
Module FederationWebpack/Rspack runtimeMFE con mismo framework⭐⭐⭐
Web ComponentsCustom Elements como contratoMFE multi-framework⭐⭐⭐
iFramesAislamiento totalLegacy / máximo aislamiento
Single-SPAOrquestador JSMulti-framework orquestado⭐⭐⭐⭐
Server-side compositionEdge/proxy ensambla HTMLSSR MFE (Next.js + Nginx)⭐⭐⭐⭐⭐
NPM packagesLibrería versionadaComponentes compartidos simples

Module Federation — estándar de facto 2026

Stack MFE recomendado 2026
────────────────────────────────────────────────────────────────────
Bundler:       Rspack (Rust-based, 10x más rápido que Webpack)
Federación:    Module Federation 2.0 (Rspack nativo)
Shell:         Next.js 15.x / 16.0 o Angular 22
Remotes:       Cualquier framework (React, Angular, Vue)
Routing:       Shell gestiona rutas top-level
Auth:          Shell gestiona token, remotes lo consumen
Design system: Web Components (Lit) o npm package compartido
Deploy:        Independiente por remote — CDN separada

📖 Rspack: Bundler escrito en Rust, compatible con Webpack. 5-10x más rápido en build. Module Federation 2.0 incorporado. Adoptado por ByteDance y creciendo rápido en 2026.

MFE por caso de uso frontend

Caso                                       Estrategia MFE
────────────────────────────────────────────────────────────────────
Portal empresa multi-equipo (Angular)      Module Federation + Angular shell
App enterprise React + legado Angular      Web Components como contrato
ePlataforma con checkout externo           iFrame para checkout (PCI compliance)
Ecommerce multi-marca                      Server-side composition (Edge)
Dashboard SaaS multi-tenant                Module Federation remotes por módulo
Landing + portal cliente (mismo dominio)   Next.js shell + MFE lazy routes

Tradeoffs de MFE — la verdad incómoda

Ventajas reales                            Costes reales
──────────────────────────────────────     ──────────────────────────────────
✅ Deploy independiente por equipo         ❌ Bundle duplicado (React x2 si no se comparte)
✅ Tech stack por equipo                   ❌ Complejidad operacional x3
✅ Fallos aislados                         ❌ Testing e2e mucho más difícil
✅ Escala organizacional                   ❌ Latencia extra cargando remotes
✅ Ownership claro por dominio             ❌ Estado compartido complejo (auth, tema)
                                           ❌ DX degradada vs monorepo

⚠️ Recomendación 2026: Antes de adoptar microfrontends, considera un monorrepo con Nx o Turborepo — ofrece despliegues independientes, responsabilidad clara por dominio y librerías compartidas sin la complejidad de Module Federation. Los microfrontends solo tienen sentido cuando el monorrepo ya no escala a nivel organizativo.

📖 Nx / Turborepo: Herramientas de gestión de monorrepos. Nx incluye generadores para Angular, React y Next.js, caché de compilaciones y grafo de dependencias. Turborepo es más ligero e ideal para proyectos con Next.js. Ambas resuelven el 80% de los problemas que llevan a adoptar microfrontends.


Índice actualizado — Documento completo

SecciónTema
1Ecosistema 2026 — Estado del arte
2Landing Pages / Páginas Públicas
3eShops / Tiendas Públicas
4Portales Privados / Apps Internas
5Métricas comparativas globales
6UI Libraries & Component Frameworks
7Matriz de decisión final
8Web Components Frameworks (Lit, Stencil, FAST)
9Vanilla JS + HTML + CSS (Alpine.js, HTMX)
10Three.js, WebGL, WebGPU, animaciones
11Microfrontends (Module Federation, Single-SPA)

Documento generado: Agosto 2026 | Angular 22 estable · Angular 23 RC · Next.js 15.x / 16.0 · Astro 5.x · SvelteKit 2.x/3.x · TypeScript 5.x · Module Federation 2.0 · Lit 3 · Three.js r168


📚 Bibliografía y Fuentes

Core Web Vitals y métricas de rendimiento frontend

FuenteURLQué aporta
Google CrUX (Chrome UX Report)https://developer.chrome.com/docs/cruxDataset real de CWV por dominio — base de métricas LCP/CLS/INP
web.dev — Core Web Vitalshttps://web.dev/explore/learn-core-web-vitalsDefinición oficial LCP, CLS, INP y umbrales Google
web.dev — INP (Interaction to Next Paint)https://web.dev/articles/inpSustitución de FID por INP en 2024
Lighthouse docshttps://developer.chrome.com/docs/lighthouseMetodología puntuación 0–100, métricas evaluadas
PageSpeed Insightshttps://pagespeed.web.devHerramienta oficial Google para medir CWV reales

Documentación oficial de frameworks

FuenteURLRelevancia
Angular — Zoneless guide (v22)https://angular.dev/guide/zonelessZoneless por defecto v21+, eliminación zone.js, bundle reduction
Angular — Signals guidehttps://angular.dev/guide/signalsModelo reactivo con Signals, standalone components
Angular — @defer guidehttps://angular.dev/guide/deferCarga diferida de componentes, reducción bundle inicial
Next.js 15.x / 16.0 — App Router docshttps://nextjs.org/docs/appPPR, RSC, ISR, Server Actions
Next.js — PPR (Partial Prerendering)https://nextjs.org/docs/app/api-reference/next-config-js/pprDocumentación oficial PPR
Astro docs — Why Astrohttps://docs.astro.build/en/concepts/why-astro/Filosofía 0 JS, Islands Architecture
SvelteKit docshttps://kit.svelte.dev/docsSSR/SSG/CSR, bundle size por diseño
Nuxt 4 docshttps://nuxt.com/docsISR, SSR, arquitectura Nuxt 4
Qwik — Resumabilityhttps://qwik.dev/docs/concepts/resumability/Concepto resumability vs hydration

Bundle size y análisis de peso

FuenteURLRelevancia
Bundlephobiahttps://bundlephobia.comAnálisis de tamaño de paquetes npm (gzip + minificado)
Bundle Scannerhttps://bundlescanner.comAnálisis de bundles de aplicaciones reales
zone.js npm packagehttps://www.npmjs.com/package/zone.jsTamaño real zone.js — ~33KB min / ~12KB gzip
Angular — ngc compiler optimizationshttps://angular.dev/tools/cli/buildTree shaking, code splitting, optimizaciones de build

UI Libraries — documentación oficial

FuenteURLRelevancia
Angular Material (M3)https://material.angular.ioComponentes, theming Material 3
PrimeNGhttps://primeng.org/docsCatálogo de 90+ componentes Angular
Shadcn/uihttps://ui.shadcn.comFilosofía copy-paste, componentes Radix + Tailwind
Radix UIhttps://www.radix-ui.comPrimitivas headless con accesibilidad (WCAG 2.2)
Lit — Web Componentshttps://lit.devFramework Google para Web Components (~5KB)
Stencil — Compilerhttps://stenciljs.com/docsCompilador WC, 0KB runtime en consumer
FAST (Microsoft)https://www.fast.designWeb Components enterprise, base Fluent UI

Microfrontends y Module Federation

FuenteURLRelevancia
Module Federation — docs oficialeshttps://module-federation.ioModule Federation 2.0, configuración host/remote
Rspack — Module Federationhttps://rspack.dev/guide/features/module-federationMF nativo en Rspack
Single-SPA docshttps://single-spa.js.org/docsOrquestación multi-framework
Martin Fowler — Microfrontendshttps://martinfowler.com/articles/micro-frontends.htmlArtículo de referencia conceptual sobre MFE

Encuestas del sector

FuenteURLRelevancia
State of JS 2025 — Libraries & Frameworkshttps://2025.stateofjs.com/en-US/libraries/#tier_listPopularidad frameworks frontend, retención vs uso, Tier List (sección Libraries)
State of CSS 2025https://2025.stateofcss.com/en-US/Uso Tailwind, CSS Modules, tendencias styling
Stack Overflow Developer Survey 2026https://survey.stackoverflow.co/2026/Frameworks más usados y más queridos globalmente
JetBrains Developer Ecosystem 2026https://www.jetbrains.com/lp/devecosystem-2026/Adopción Angular/React/Vue por empresa

📌 Nota metodológica: Las métricas de LCP/CLS/INP son orientativas para implementaciones típicas. Los valores reales dependen del contenido, imágenes, fuentes web y red del usuario final. Se recomienda medir con PageSpeed Insights y el CrUX Dashboard para datos reales de producción.