Skip to content

[performance] Route code-splitting + show-all virtualization; split oversized ListPage/FieldInput #670

@MartinCastroAlvarez

Description

@MartinCastroAlvarez

Audit 2026-06-02 — performance + maintainability (Low)

  • frontend/apps/web/src/App.tsx imports all pages eagerly; only JsonViewer/ColumnLayoutModal are lazy. The 285 KB main chunk includes LoginPage/CreatePage not needed on first authenticated paint — lazy-load them.
  • The ?all list path (up to list_max_show_all = 200 rows) renders every row into the DOM with no virtualization — add row virtualization for the show-all path.
  • Post-[tech-debt] Split oversized page components (DetailPage 1100 LOC, ListPage 886 LOC) #657, ListPage.tsx (~874 lines, bundles filtering/selection/bulk/column-layout/search) and FieldInput.tsx (~561-line type/widget if/else ladder) remain oversized. Extract ListPage concerns into pages/list/ siblings (mirroring pages/detail/) and consider a widget-registry dispatch table for FieldInput.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceThroughput / latency / payload sizetech-debtCode quality / maintainability debt

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions