Bad nextjs folder structure does not show up on day one. It shows up at month six when three developers search for the checkout form hook and find four copies. I reorganised a client dashboard after exactly that — this guide is the tree I use now on large App Router projects, why each folder exists, mistakes from my first Next.js apps, and the 10-second findability rule.
Real folder tree — production-shaped layout
my-app/
├── app/ # routes only — thin pages
│ ├── (marketing)/ # route group — shared layout, no URL segment






