This repository contains three identical React applications structured differently to test token usage patterns with varying file size distributions. All projects implement the same employee management system but with radically different code organization approaches.
- Architecture: Single massive generated file approach
- Key File:
core.tsx(1,204 lines) - contains everything in one file - Generation: Created via swagger-typescript-api
- Contents: API client, components, hooks, utilities, routing, notifications, forms - all bundled together
- Other Files: Standard React boilerplate (App.tsx, index.tsx, etc.)
- Architecture: Modular organization with medium-sized files
- Structure:
employee/components/index.tsx: 448 lines (EmployeeForm, EmployeeList, etc.)employee/hooks/index.tsx: 364 lines (all employee-related hooks)api/index.ts: 272 lines (API client)
- Approach: Logical separation but maintains larger monolithic files
- Architecture: Highly granular structure with many small files
- Structure:
EditEmployeeButton.tsx: 20 linesEmployeeList.tsx: 58 linesaddress-value-getter.util.ts: 9 lines- Deep folder hierarchy with dedicated files for components, hooks, utilities, models, etc.
- Approach: Extreme separation of concerns with single-responsibility files
| Aspect | Humongous File | Large Files | Small Files |
|---|---|---|---|
| Total Files | 9 | 17 | 89 |
| Total Lines | 1,289 | 1,307 | 1,450 |
| Largest File | 1,204 lines | 448 lines | 136 lines |
| File Organization | Single generated file | Module-based | Component-based |
| Maintainability | Poor | Moderate | Excellent |
Despite structural differences, all three projects implement:
- Employee CRUD operations
- Form validation (Formik & React Hook Form support)
- Data grid display
- Notification system
- Routing and navigation
- API integration (real/fake modes)
This setup allows for comparative analysis of IDE performance and development experience with different file size distributions and organizational paradigms.
Each project can be run independently:
cd react-project-with-[humongous-file|large-files|small-files]
npm install
npm startEnvironment variables control behavior:
REACT_APP_API_MODE: 'fake' | 'real'REACT_APP_FORM_MODE: 'hook' | 'formik'