Next.js + Magento 2 (Headless) Project Structure

Assuming:

  • Next.js 14+ (App Router)
  • TypeScript
  • Magento 2 GraphQL
  • Enterprise-grade scalability

Root Structure



    

app/ (Routing & Pages)



    

Each route directly maps to Magento URLs (SEO friendly)

components/ (Reusable UI)



    

features/ (Enterprise Pattern)

Each business domain is isolated.



    

This keeps Magento logic clean & scalable

graphql/ (Magento Queries)



    

lib/ (Core Setup)



    

services/ (API Abstraction)



    

Pages never talk directly to GraphQL

store/ (Global State)



    

(State managers: Zustand / Redux Toolkit)

hooks/



    

types/



    

.env.local



    

Middleware Example (Auth / Redirects)



    

Why This Structure Is Enterprise-Grade

  • Clean separation of concerns
  • Magento logic isolated
  • Easy to scale teams
  • SEO friendly
  • Matches Adobe PWA concepts
  • Easy migration from PWA Studio