A well-organized folder structure makes a React project easier to scale, maintain, and collaborate on.
Here’s a simple structure I commonly use:
src/
├── components/ # Reusable UI components
├── pages/ # Page-level components
├── hooks/ # Custom React hooks
├── services/ # API calls & external services
├── utils/ # Helper & utility functions
└── assets/ # Images, icons & other assets
📁 Components
Reusable UI components such as buttons, cards, modals, inputs, and navigation elements.
📄 Pages
Page-level components that represent different routes or screens of the application.
🪝 Hooks
Custom React hooks for reusable stateful logic and functionality.
🔌 Services
API requests, authentication services, and other external integrations.
🛠️ Utils
Reusable helper functions and utility logic.
🖼️ Assets
Images, icons, fonts, and other static resources.
Example — Reusable Button
const Button = ({ children }) => {
return (
<button className="rounded-lg px-4 py-2">
{children}
</button>
);
};
export default Button;
💡 Tip: There’s no single “perfect” React folder structure. The best structure depends on the size and architecture of your project.
For larger applications, a feature-based structure can often be more scalable.
Top comments (0)