Nobody signs off on a six-month frontend rewrite for an application that is already generating revenue. So don’t ask for one — migrate route by route, behind the same domain, with the legacy app and the Next.js app running side by side during the transition.
Start with the pages that change most often; that is where the productivity gain shows up first and buys you credibility for the rest. Keep a shared design-token layer so the two stacks don’t visually diverge while the migration is in flight.
Eighteen months later, nobody remembers there was a “migration” — they just remember the app got faster to change.