Skip to content
Now accepting Q2 projects — limited slots available. Get started →
Migration Service

Tus rutas de Remix ahora son React Router 7. ¿Y ahora qué?

Si eres líder técnico y has reescrito loaders dos veces este año mientras veías cómo Shopify rebautizaba tu framework hasta hacerlo irreconocible, ya llegaste al momento de migrar.

  • React Router 7's identity crisis forces you to choose between declarative routing, data routers, or framework mode — fracturing your team's mental model
  • Package restructuring from @remix-run/* to @react-router/* broke your CI/CD, your editor autocomplete, and every third-party tutorial you bookmarked
  • React Server Components remain unreleased in Remix while Next.js has shipped stable RSC since v13 — you're rewriting loaders that RSC eliminates
  • Your hiring pipeline stalls because the Remix developer pool is 8% the size of Next.js — senior candidates ghost your React Router 7 job posts
  • Community answers scatter across three usage paradigms, so Stack Overflow solutions fail half the time when you paste them into your routes
  • Adapter configuration for edge deployment requires custom server logic that Vercel's Next.js runtime handles in zero lines of config
  • Server Components replace loader boilerplate — your data fetching becomes async component code, cutting client JS bundles by 30–50% and eliminating waterfall requests
  • Per-route rendering strategies let you mix SSG for your blog, ISR for your product pages, and edge SSR for personalized dashboards — not one-size-fits-all server rendering
  • Vercel's edge network delivers your pages in under 100ms globally from 47 cities without custom adapters, middleware, or CDN config — deploy and it's live
  • The largest React framework ecosystem gives your team 4.2 million npm dependents, 890k Stack Overflow threads, and every SaaS integration shipping Next.js docs first
  • Server Actions let any component call server-side mutations — no route-level action exports, no hidden form serialization, just import and invoke from your button onClick
  • Incremental Static Regeneration updates your product pages on-demand when inventory changes, so your cache stays fresh without cron jobs or manual purges

Por qué los equipos de Remix se están pasando a Next.js

Remix tenía una identidad clara: React con enfoque server-first, con loaders, actions y UI colocados en un mismo archivo de ruta. Luego Shopify lo adquirió. Luego se fusionó con React Router. Ahora es React Router 7 con "Framework Mode" -- un cambio de marca que dejó a miles de desarrolladores preguntándose sobre qué están construyendo realmente.

La transición a React Router 7 trajo reestructuración de paquetes (@remix-run/*@react-router/*), cambios en archivos de configuración, renombrado de componentes (RemixServerServerRouter, RemixBrowserHydratedRouter) y cambios disruptivos en el sistema de tipos. Para muchos equipos, esa fue la señal definitiva para migrar a algo con una hoja de ruta más clara.

Next.js es ese algo. Con el App Router, React Server Components, Server Actions y el respaldo de Vercel, Next.js entrega todo lo que Remix prometió -- más ISR, renderizado en el edge y el ecosistema de framework React más grande en producción.

El problema de React Router 7

Seamos directos sobre lo que pasó. Remix v2 era un framework sólido. La fusión con React Router 7 generó problemas reales.

Crisis de identidad

¿Es un router o un framework? React Router 7 tiene tres modos: Declarative Routing, Data Router y Framework Mode. Framework Mode es esencialmente Remix con otro nombre, pero intenta explicárselo a alguien nuevo que lee la documentación por primera vez. La comunidad está dividida entre quienes lo usan como router de SPA y quienes lo usan como framework full-stack.

Incertidumbre en el ecosistema

Los paquetes @remix-run/* están deprecados. Existen guías de migración, pero son mecánicas -- cambiar nombres de paquetes, renombrar componentes, actualizar tipos. Lo que no responden es si esta plataforma volverá a cambiar de identidad en 18 meses. El soporte para RSC está "en camino", pero todavía no ha llegado. Next.js tiene RSC estable desde la versión 13.

Mindshare en declive

Respuestas en Stack Overflow, contenido de tutoriales, bolsa de talento -- Next.js domina en todos ellos. Encontrar desarrolladores de Next.js es sencillo. ¿Encontrar a alguien que entienda a fondo el Framework Mode de React Router 7? Ese es un grupo mucho más reducido.

Qué te ofrece Next.js

Pasar de Remix a Next.js no es una reescritura total. Ambos frameworks son React. Tus componentes, hooks y librerías de UI se trasladan en su mayoría sin cambios. El trabajo real de migración está en los patrones de obtención de datos y las convenciones de ruteo.

Server Components por defecto

Los componentes del App Router de Next.js son Server Components por defecto. Sin sintaxis especial, sin funciones loader -- solo componentes async que obtienen datos directamente. Para páginas de solo lectura, esto es más sencillo que el patrón de loaders de Remix.

// Patrón loader de Remix
export const loader = async () => {
  const posts = await db.posts.findMany();
  return { posts };
};

export default function Posts() {
  const { posts } = useLoaderData<typeof loader>();
  return <PostList posts={posts} />;
}

// Server Component de Next.js
export default async function Posts() {
  const posts = await db.posts.findMany();
  return <PostList posts={posts} />;
}

Menos abstracciones. Menos imports. Los datos viven justo donde está el componente.

Server Actions en lugar de Form Actions

El export action de Remix para mutaciones de formularios se mapea limpiamente a los Server Actions de Next.js. El modelo mental es similar -- funciones de mutación del lado del servidor -- pero los Server Actions son más componibles. Funcionan en cualquier componente, no solo a nivel de ruta.

// Server Action de Next.js
'use server';

export async function updateProfile(formData: FormData) {
  const name = formData.get('name');
  await db.users.update({ where: { id: userId }, data: { name } });
  revalidatePath('/profile');
}

Flexibilidad de renderizado

Remix te da una sola estrategia de renderizado: server-first. Next.js te da SSG, SSR, ISR y renderizado en el edge -- por ruta. Una página de marketing puede generarse de forma estática con ISR revalidando cada 60 segundos, mientras tu dashboard transmite datos renderizados en el servidor. Esa flexibilidad impacta directamente en el rendimiento y los costos de hosting.

Infraestructura lista para el edge

Despliega en la red edge de Vercel y tu TTFB cae por debajo de los 100 ms a nivel global. Remix puede correr en Cloudflare Workers, pero Next.js en Vercel es llave en mano -- sin configuración de servidor personalizado, sin configuración de adaptadores.

Nuestro proceso de migración

Hemos migrado aplicaciones Remix que van desde sitios de marketing con 20 rutas hasta plataformas SaaS con más de 200 rutas. Este es el proceso que hemos refinado:

Fase 1: Auditoría y arquitectura (semana 1)

Mapeamos cada ruta, loader, action y error boundary de Remix. Identificamos qué páginas deben ser estáticas (SSG/ISR), cuáles necesitan renderizado en el servidor y cuáles requieren interactividad en el cliente. También auditamos tus puntuaciones actuales de Lighthouse, Core Web Vitals y URLs indexadas para establecer líneas base.

Fase 2: Configuración del foundation (semanas 1-2)

Creamos el proyecto Next.js con App Router, configuramos TypeScript, conectamos tu solución de estilos existente (Tailwind, CSS Modules, styled-components) y configuramos el pipeline de despliegue en Vercel o el host de tu preferencia.

Fase 3: Migración de rutas (semanas 2-4)

Esta es la parte más extensa del trabajo. Cada archivo de ruta de Remix se descompone:

  • Loaders → Server Components con obtención directa de datos, o generateStaticParams + fetch para páginas estáticas
  • Actions → Server Actions en archivos actions.ts dedicados
  • Error Boundaries → Convención error.tsx de Next.js
  • Funciones MetagenerateMetadata de Next.js
  • Links<Link> de Next.js (API prácticamente idéntica)
  • Layouts anidados → Archivos layout.tsx de Next.js (el mapeo es limpio, ya que ambos frameworks usan ruteo anidado)

Los componentes de React raramente necesitan cambios más allá de las rutas de importación. Tu <Button>, tu <Card>, tus hooks personalizados -- todos se trasladan directamente.

Fase 4: Preservación del SEO (semanas 4-5)

Este paso no es opcional. Implementamos:

  • Redirecciones 301 para cada URL que cambie de estructura, configuradas en next.config.js
  • Generación de sitemap XML mediante app/sitemap.ts
  • URLs canónicas en cada página
  • Datos estructurados (JSON-LD) migrados
  • Metadatos de OpenGraph y tarjetas de Twitter mediante generateMetadata
  • Monitoreo en Google Search Console para detectar errores de rastreo tras el lanzamiento

Hemos gestionado migraciones sin perder ninguna página con posicionamiento. La clave está en el mapeo de redirecciones y la paridad de metadatos -- verificamos que cada URL indexada tenga un destino correspondiente con una URL canónica coincidente.

Fase 5: QA, rendimiento y lanzamiento (semanas 5-6)

Realizamos auditorías completas de Lighthouse, pruebas en distintos navegadores y pruebas de carga antes de migrar el DNS. Tras el lanzamiento, monitoreamos Core Web Vitals y Search Console durante dos semanas para detectar problemas a tiempo.

Plazos y precios

Las aplicaciones Remix pequeñas con menos de 30 rutas suelen migrarse en 3-4 semanas con un precio inicial de $8.000. Las aplicaciones medianas (30-100 rutas) requieren 5-8 semanas a un costo de $15.000-$30.000. Las plataformas Remix empresariales con patrones de datos complejos, autenticación e integraciones extensas con APIs se presupuestan de forma individual.

Cada proyecto comienza con una auditoría de migración gratuita. Revisaremos tu codebase de Remix, identificaremos la complejidad de la migración y entregaremos una propuesta de precio fijo en un plazo de 48 horas.

La conclusión

Remix fue un gran framework. React Router 7 puede encontrar su rumbo con el tiempo. Pero ahora mismo, Next.js tiene el ecosistema, las herramientas, la infraestructura de despliegue y el impulso de comunidad que las aplicaciones en producción necesitan. Si el rebranding de React Router tiene a tu equipo cuestionando el futuro de tu stack, ese instinto vale la pena seguirlo.

How It Works

The migration process

01

Discovery & Audit

We map every page, post, media file, redirect, and plugin. Nothing gets missed.

02

Architecture Plan

New stack designed for your content structure, SEO requirements, and performance targets.

03

Staged Migration

Content migrated in batches. Each batch verified before the next begins.

04

SEO Preservation

301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.

05

Launch & Monitor

DNS cutover with zero downtime. 30-day monitoring period included.

Before vs After

Remix vs Next.js

Metric Remix Next.js
Lighthouse Mobile 60-75 90-100
TTFB 0.4-1.2s <0.1s (Edge)
Client JS Bundle 371 kB baseline ~85 kB with RSC
Hosting Cost $20-50/mo (custom server) $0-20/mo (Vercel)
Developer Experience Three confusing modes Single cohesive App Router
RSC Support Not yet shipped Stable since Next.js 13
FAQ

Common questions

¿Cuánto código de Remix puedo reutilizar en Next.js?

Los componentes de React, hooks, funciones utilitarias y estilos se trasladan directamente -- ambos frameworks son React. El trabajo de migración se centra en la obtención de datos (loaders → Server Components), las mutaciones (actions → Server Actions) y las convenciones de ruteo. Espera que entre el 70 y el 85 % de tu código de componentes se traslade con cambios mínimos más allá de las rutas de importación.

¿Cómo se mapean los loaders de Remix a la obtención de datos en Next.js?

Los loaders de Remix se mapean a dos patrones en Next.js. Para páginas dinámicas, los Server Components obtienen datos directamente en componentes async -- sin necesidad de abstracción con loaders. Para páginas estáticas, se usa `generateStaticParams` con ISR. Ambos enfoques son más simples que el patrón loader/`useLoaderData`, ya que los datos permanecen en el componente sin una frontera de serialización de por medio.

¿Qué pasa con las form actions de Remix en Next.js?

Las actions de Remix se mapean a los Server Actions de Next.js. El concepto es el mismo -- funciones del lado del servidor que gestionan mutaciones de formularios -- pero los Server Actions son más flexibles. Pueden llamarse desde cualquier componente, no solo desde exports a nivel de ruta. El componente `<Form>` de Remix se mapea a formularios HTML estándar con el atributo `action` apuntando a un Server Action.

¿Perderé posicionamiento en SEO durante la migración?

No, si se hace correctamente. Construimos mapas de redirecciones 301 para cada URL, migramos todos los metadatos mediante `generateMetadata`, preservamos los datos estructurados y monitoreamos Google Search Console tras el lanzamiento. Antes del lanzamiento, realizamos una comparación de rastreo para verificar que cada página indexada tenga un destino con una URL canónica coincidente.

¿Debería esperar a que React Router 7 se estabilice en lugar de migrar?

Es una preocupación válida, pero vale la pena analizar la trayectoria. El soporte de RSC en React Router 7 aún no está disponible, la comunidad está dividida entre tres modos de uso y el rebranding de Remix a React Router ya quemó la confianza una vez. Next.js ofrece RSC estable, herramientas maduras y una amplia bolsa de talento hoy mismo. Esperar también tiene sus propios riesgos.

¿Cuánto tiempo tarda una migración de Remix a Next.js?

Las aplicaciones pequeñas con menos de 30 rutas suelen migrarse en 3-4 semanas. Las apps medianas con 30-100 rutas requieren entre 5 y 8 semanas. Las plataformas empresariales con autenticación compleja, layouts anidados e integraciones extensas con APIs se presupuestan individualmente, pero generalmente toman entre 8 y 12 semanas. Cada proyecto comienza con una auditoría gratuita que produce un cronograma preciso.

¿Por qué hay personas que están dejando Next.js?

Algunos desarrolladores abandonan Next.js por su complejidad y su naturaleza opinionada, que puede limitar la flexibilidad en ciertos proyectos. También se han señalado problemas con los tiempos de build y el rendimiento del renderizado del lado del servidor, especialmente en aplicaciones de gran escala. Además, el ritmo acelerado de actualizaciones y cambios en Next.js puede dificultar el mantenimiento de codebases estables. Estos factores llevan a algunos desarrolladores a explorar otros frameworks como Remix, percibidos como más simples y controlables para casos de uso específicos.

¿Sigue siendo relevante Remix.js?

Remix.js sigue siendo relevante, especialmente para desarrolladores que buscan un renderizado del lado del servidor eficiente y un rendimiento optimizado para aplicaciones web dinámicas. Destaca en la creación de transiciones fluidas entre páginas y en la gestión efectiva de la obtención de datos. El enfoque de Remix en la experiencia de usuario, mediante mejora progresiva y soporte nativo para estándares web, lo convierte en una opción sólida para el desarrollo web moderno. Sin embargo, su relevancia puede variar según las necesidades específicas del proyecto, la experiencia del equipo y el panorama cambiante de las tecnologías web. Como con cualquier framework, es fundamental evaluar los requisitos del proyecto frente a sus características.

Ready to migrate?

Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.

Get your free assessment →
Get in touch

Let's build
something together.

Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.

Get in touch →