If you search for "Next.js App Router migration," you will find dozens of perfectly polished tutorials. They show you how to move a simple blog from the old pages directory to the new app directory in 15 minutes.

I am here to talk about what happens when you try to migrate a messy, real-world, highly interactive SaaS application with thousands of active users.

Spoiler: It took us three weeks, broke our authentication flow twice, and completely shattered how I thought about web development. But we made it out the other side, and the performance gains are actually real.

If you are planning this migration, here are the hidden traps you need to watch out for.

The "use client" Contagion