Skip to content

Instantly share code, notes, and snippets.

@avinashtare
Created December 27, 2025 19:02
Show Gist options
  • Select an option

  • Save avinashtare/8dc6fb79e254619adc4bfbf7795b72c4 to your computer and use it in GitHub Desktop.

Select an option

Save avinashtare/8dc6fb79e254619adc4bfbf7795b72c4 to your computer and use it in GitHub Desktop.
# React Production Level Folder Stracture
react-production/
├── .git/ # Git version control data
├── .husky/ # Git hooks (run before commit/push)
│ ├── commit-msg # Enforces commit message rules
│ └── pre-commit # Runs checks before commit
├── node_modules/ # Installed dependencies (auto-generated)
├── public/
│ └── index.html # Main HTML file (Vite entry)
├── src/ # Application source code
│ │
│ ├── app/ # App-level setup (wiring only)
│ │ ├── config/
│ │ │ └── app.config.ts # Global app configuration
│ │ │
│ │ ├── providers/
│ │ │ └── StateProvider.tsx # Wraps global state provider
│ │ │
│ │ ├── router/
│ │ │ ├── routes.tsx # Route definitions
│ │ │ └── index.tsx # Router setup
│ │ │
│ │ ├── store/
│ │ │ ├── rootState.ts # Combines all feature states
│ │ │ └── index.ts # Store initialization
│ │ │
│ │ └── App.tsx # Root React component
│ │
│ ├── modules/ # Business features (domains)
│ │ │
│ │ ├── auth/ # Authentication feature
│ │ │ ├── domain/ # Business logic & types (pure)
│ │ │ │ ├── auth.entity.ts# Auth business model
│ │ │ │ └── auth.types.ts # Auth-related types
│ │ │ │
│ │ │ ├── data/ # Data & state handling
│ │ │ │ ├── state/ # Feature state (Redux internally)
│ │ │ │ │ ├── auth.state.ts # Auth state shape
│ │ │ │ │ ├── auth.actions.ts # Auth actions/events
│ │ │ │ │ └── auth.effects.ts # Async logic (API calls)
│ │ │ │ │
│ │ │ │ └── selectors/
│ │ │ │ └── auth.selectors.ts # Read data from state
│ │ │ │
│ │ │ ├── ui/ # UI related to auth
│ │ │ │ ├── components/
│ │ │ │ │ ├── LoginForm.tsx # Login form component
│ │ │ │ │ └── LogoutButton.tsx # Logout button
│ │ │ │ │
│ │ │ │ └── pages/
│ │ │ │ └── LoginPage.tsx # Login page
│ │ │ │
│ │ │ ├── validation/
│ │ │ │ └── login.schema.ts # Form validation rules
│ │ │ │
│ │ │ └── index.ts # Public API of auth module
│ │ │
│ │ └── users/ # Users feature
│ │ ├── domain/
│ │ │ └── user.types.ts # User types
│ │ │
│ │ ├── data/
│ │ │ ├── state/
│ │ │ │ ├── users.state.ts # Users state
│ │ │ │ └── users.actions.ts # Users actions
│ │ │ │
│ │ │ └── selectors/
│ │ │ └── users.selectors.ts
│ │ │
│ │ ├── ui/
│ │ │ └── pages/
│ │ │ └── UsersPage.tsx # Users page
│ │ │
│ │ └── index.ts
│ │
│ ├── shared/ # Reusable, stateless code
│ │ ├── ui/ # Design system components
│ │ │ ├── Button/
│ │ │ │ ├── Button.tsx
│ │ │ │ └── Button.styles.ts
│ │ │ │
│ │ │ └── Modal/
│ │ │ └── Modal.tsx
│ │ │
│ │ ├── hooks/
│ │ │ └── useDebounce.ts # Reusable hook
│ │ │
│ │ ├── utils/
│ │ │ └── date.util.ts # Helper functions
│ │ │
│ │ ├── constants/
│ │ │ └── routes.ts # Route constants
│ │ │
│ │ ├── types/
│ │ │ └── common.types.ts # Shared types
│ │ │
│ │ └── assets/
│ │ ├── images/ # Images
│ │ ├── icons/ # Icons
│ │ └── styles/ # Global styles
│ │
│ ├── infrastructure/ # Low-level technical services
│ │ ├── http/
│ │ │ ├── apiClient.ts # HTTP client setup
│ │ │ └── interceptors.ts # Request/response interceptors
│ │ │
│ │ └── storage/
│ │ └── localStorage.service.ts # Browser storage
│ │
│ ├── locales/ # Translations (i18n)
│ │ ├── en.json
│ │ └── hi.json
│ │
│ ├── main.tsx # App entry point
│ └── index.css # Global CSS
├── tests/ # Application tests
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── e2e/ # End-to-end tests
├── .env # Local environment variables
├── .env.example # Example env file
├── .env.production # Production env variables
├── .gitignore # Files ignored by Git
├── .prettierrc # Code formatting rules
├── commitlint.config.js # Commit message rules
├── eslint.config.js # Linting configuration
├── Dockerfile # Docker build instructions
├── package.json # Project metadata & scripts
├── package-lock.json # Dependency lock file
├── tsconfig.json # Base TypeScript config
├── tsconfig.app.json # App-specific TS config
├── tsconfig.node.json # Node-specific TS config
├── vite.config.js # Vite configuration
├── yarn.lock # Yarn dependency lock
└── README.md # Project documentation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment