Skip to content

Make the frontend feel snappier #1861

Open
@codemonkey800

Description

@codemonkey800

Problem

Our pages wait for all data to be fetched on the server before the HTML is streamed to the browser. That blocks the first paint and makes the app feel sluggish.

Why it matters

Single-page apps feel fast because static scaffolding (header, footer, table headings, etc.) is rendered immediately, while dynamic sections fill in once their data arrives. We’re missing that experience.

What Remix offers

Remix supports deferred data loading with React Suspense, letting us send the shell first and stream data-driven components later. Docs: https://remix.run/docs/en/main/discussion/pending-ui#deferred-data-loading

Proposal

  1. Audit routes that fetch data server-side.
  2. Introduce defer() + <Await>/<Suspense> to stream content progressively.
  3. Add a lightweight loading UI for deferred sections.
  4. Measure TTI / Core Web Vitals before and after to confirm the win.

Expected outcome

Users see the page frame instantly, with content filling in as data arrives—no more blank-screen wait.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions