El Middleware de Next.js se ejecuta antes de cada solicitud, permitiendo redirecciones, reescrituras, autenticación y geolocalización en el edge.
Creación
Archivo middleware.ts en la raíz del proyecto. Exporta middleware(request) que retorna NextResponse.next(), redirect() o rewrite().
Matcher
Configura las rutas donde se ejecuta el middleware: export const config = { matcher: ['/dashboard/:path*'] }. Optimizado para ejecución en edge.
Casos de uso
Autenticación (redirigir a login), localización (detectar idioma), A/B testing (cookies), geobloqueo, mantenimiento (rewrite a página de mantenimiento).
Limitaciones
No puedes leer responses de APIs externas. El código debe ser edge-compatible (sin Node.js APIs). Tamaño máximo de 1MB para el bundle.

