AOSSIE-Org / AOSSIE-Org/OrgExplorer

[FEATURE]: Implement Code Splitting and Dynamic Routing to optimize Vite bundle size

Ouverte Adaptée aux débutants
#140 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
JavaScript
Étoiles
34
Forks
92
Merge moyen
8 j 7 h
PR mergées (30 j)
12

Description

### Feature and its Use Cases

### Description
Currently, `OrgExplorer` eagerly imports all page components inside `App.jsx` (e.g., `HomePage`, `OverviewPage`, `ContributorProfilePage`, etc.). Because of this, Vite bundles the entire application into a single massive JavaScript chunk.

If you run `npm run build`, Vite actually throws a warning about this:
> `(!) Some chunks are larger than 500 kB after minification. Consider using dynamic import() to code-split the application.`

By implementing React's `lazy()` and `Suspense` for our route components, we can split the application into smaller chunks. This will drastically reduce the initial load time, as users will only download the JavaScript for the specific page they are visiting (e.g., the Home Page) rather than downloading the code for the analytics dashboards and charts before they even need them.

### Expected Behavior
- Replace static imports in `App.jsx` with `React.lazy(() => import('./pages/...'))`.
- Wrap the `` (or individual routes) in a `` boundary with a fallback loading indicator (we can reuse the existing `Spinner` component).
- Running `npm run build` should no longer throw the >500kB chunk size warning, and the build output should show multiple smaller `.js` chunks instead of one giant one.

### Impact
High - Directly improves the initial page load speed and core web vitals for all users.

### Additional Context

_No response_

### Code of Conduct

- [x] I have joined the [Discord server](https://discord.gg/hjUhu33uAn) and will post updates there
- [x] I have searched existing issues to avoid duplicates
- [x] I am ready to open a pr on this issue

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start in App.jsx, where HomePage, OverviewPage, ContributorProfilePage and other route components are currently imported eagerly. Replace those route imports with React.lazy imports and add a Suspense boundary using the existing Spinner component as the fallback. Run npm run build before and after; done means the >500kB chunk warning is gone and the output shows multiple smaller JavaScript chunks.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, react, vite
Domaine
frontend, performance
Type d'issue
Fonctionnalité
Difficulté
2/5
Temps estimé
1-3 heures
Activité
Active
Clarté
Clairement spécifiée
Accessibilité débutants
78/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.