How Layout Management works in Next.js App Router: Shared and Stand-Alone Approaches

rezabaharvand

Reza Baharvand

Posted on July 23, 2024

How Layout Management works in Next.js App Router: Shared and Stand-Alone Approaches

Recently, I migrated to Next.js's new App Router and explored using a different layout for ad landing pages. Unlike the rest of my application, these pages needed unique navigation. With Next.js, you can now name directories with parentheses () which won't affect the routing. This approach isn't my preferred method for managing layouts, but it does help in keeping the application folders well-organized.

For example, I can have separate folders for my dashboard, app, website, blog, and landing pages, enhancing overall structure. Since I use MDX and need specific compilation settings, ensuring that functions correctly reference these new directories was crucial.

Project Structure:

./src/app
├── (lp)
│   ├── layout.tsx -> Layout for all landing pages
│   └── special-offer
│       └── page.tsx -> Special Offer page
├── (website)
│   ├── about
│   │   └── page.tsx -> About page
│   ├── layout.tsx -> Layout for all website pages
│   └── page.tsx -> Homepage
├── favicon.ico
├── globals.css
└── layout.tsx
Enter fullscreen mode Exit fullscreen mode

How It Works:

  • The layout.tsx in the root is globally shared.
  • The layout.tsx under (website) affects only pages in that folder.
  • The layout.tsx under (lp) is exclusive to pages in that landing page folder.

This setup lets each section of the application maintain its thematic consistency while still sharing some global components.


You can connect with me on my personal website or see my work on Blue Boost and Authority Roadmap.

💖 💪 🙅 🚩
rezabaharvand
Reza Baharvand

Posted on July 23, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related