Skip to content

Code-split the apps/web bundle #31

@themightychris

Description

@themightychris

Context: PR #28 ships every public screen statically imported by App.tsx. The production bundle is 550 kB (164 kB gzipped), which vite warns about at build time.

The cheapest fix is React.lazy() on each screen so each route splits naturally. The shell + home are the hot path; everything else can lazy-load.

Acceptance:

  • No single chunk > 200 kB gzipped
  • First-paint route (/) loads only the hero + shell-needed code
  • Smoke tests still pass (lazy + Suspense boundary doesn't break the render harness)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions