feat(client): route lazy loading, vendor chunk splitting, defer analytics init#339
Draft
feat(client): route lazy loading, vendor chunk splitting, defer analytics init#339
Conversation
…tics init Co-authored-by: hyunwoo0081 <76638365+hyunwoo0081@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update frontend for route lazy loading and performance improvements
feat(client): POC – route lazy loading + deferred analytics init
Mar 17, 2026
… dependency chain Co-authored-by: hyunwoo0081 <76638365+hyunwoo0081@users.noreply.github.com>
Copilot
AI
changed the title
feat(client): POC – route lazy loading + deferred analytics init
feat(client): route lazy loading, vendor chunk splitting, defer analytics init
Mar 17, 2026
|
🚀 Preview Deployment
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



POC for reducing initial JS parse/execution cost in the client SPA. Two sessions of changes: (1) route-level lazy loading + deferred analytics, (2) stable Rollup vendor chunk splitting + removing
@allcll/sejong-uifrom the/dependency chain.Route lazy loading (
routing.tsx,main.tsx)React.lazy()dynamic imports; layout components and error pages remain synchronousSimulationLayoutconverted to lazy import — was the primary path pulling@allcll/sejong-uiinto the initial bundlePageLoadercomponent as the common<Suspense>fallback (layout stays visible, only page body suspends)Clarity,Sentry,ReactGA) initialization deferred viarequestIdleCallback/setTimeout(200ms)fallback to avoid blocking first renderVendor chunk splitting (
vite.config.ts)Added
manualChunkswith stable named output chunks for long-term cache stability:Resulting chunks:
vendor-react(46 kB gz),vendor-router(30 kB gz),vendor-tanstack(11 kB gz),vendor-allcll-ui(6 kB gz),vendor-sejong-ui(4 kB gz),vendor(308 kB gz).Removing
sejong-uifrom/import chain (SimulationSection.tsx,Landing.tsx)SimulationSection(rendered on/) had a direct@allcll/sejong-uiimport for a single captcha<Input>— replaced with an inline native<input>styled to matchSimulationSectionis now lazy-loaded insideLanding.tsxwith<Suspense fallback={null}>vendor-sejong-uiis not requested on initial/load; it loads on-demand only when navigating to/simulation📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.