SmartCodingTips

πŸ“ Recommended React Folder Structure

A clean and organized folder structure makes your React projects easier to manage, scale, and collaborate on. Here’s a recommended layout for most mid-sized apps.


πŸ“¦ Typical Folder Layout


my-app/
β”œβ”€β”€ public/
β”‚   └── index.html
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ assets/        # Images, icons, fonts, etc.
β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”œβ”€β”€ pages/         # Route-level pages
β”‚   β”œβ”€β”€ layouts/       # Shared page wrappers
β”‚   β”œβ”€β”€ hooks/         # Custom hooks
β”‚   β”œβ”€β”€ context/       # React Context providers
β”‚   β”œβ”€β”€ services/      # API functions or utilities
β”‚   β”œβ”€β”€ styles/        # Global or modular styles
β”‚   β”œβ”€β”€ App.jsx
β”‚   └── main.jsx       # (or index.js)
β”œβ”€β”€ .env
β”œβ”€β”€ package.json
└── README.md

🧩 Folder Breakdown

  • assets/ – Images, icons, logos
  • components/ – Reusable buttons, cards, modals, etc.
  • pages/ – Route-level views like Home, About, BlogDetail
  • layouts/ – Wrappers like Navbar/Footer or AuthLayout
  • hooks/ – Custom hooks like useDarkMode()
  • context/ – React Contexts like Auth, Theme, Cart
  • services/ – API clients (Axios, fetch wrappers)
  • styles/ – Tailwind config, global.css, or CSS Modules

βœ… Best Practices

  • Keep components small and focused
  • Split files by feature not just type (feature-based structure)
  • Use index.js inside folders for easier imports
  • Name files and folders consistently (camelCase or kebab-case)

πŸ“¦ Optional Advanced Structure


src/
β”œβ”€β”€ features/
β”‚   └── blog/
β”‚       β”œβ”€β”€ BlogList.jsx
β”‚       β”œβ”€β”€ BlogDetail.jsx
β”‚       β”œβ”€β”€ blogSlice.js
β”‚       └── blogAPI.js