Skip to main content
February 19, 20261.0.22v1.0.22RSS

v1.0.22 — [Performance] No Code Splitting — All Heavy Dashboard Components Eagerly Loaded

Release Notes

There are zero dynamic imports across the entire src/ directory. All large client components (beast-mode-tab.tsx at 33 KB, support-tickets-dashboard.tsx at 31 KB, crm-health-dashboard.tsx at 29 KB, billing/revenue-dashboard.tsx at 25 KB, project-features-tab.tsx at 31 KB, env-vars-settings.tsx at 27 KB, command-palette.tsx at 18 KB) are bundled into the initial JS payload regardless of which page is loaded. The product detail page loads all tab components upfront even though only one tab is active at a time.

Category: bundle File: src/app/dashboard/products/[id]/page.tsx Recommendation: Wrap each heavy tab component in React.lazy / next/dynamic with ssr: false. Particularly: BeastModeTab, SupportTicketsDashboard, CrmHealthDashboard, RevenueDashboard, ProjectFeaturesTab, ChurnDashboard, and CommandPalette (open-on-demand). The command palette especially is loaded on every page but only shown on Cmd+K — a prime dynamic import candidate. Estimated Improvement: Estimated 150–250 KB reduction in initial JS parse cost for dashboard pages. First Contentful Paint improvement of 300–600ms on mobile/slower connections.