← Inbox

Message

Three stages on one route. Resolve chips stamp how long after navigation start each panel painted.

Shellin App Shell — instant on soft nav

Shell still works offline

Priya Nair·Sun

Prefetchawait prefetch() — warm with prefetch={true}

With Partial Prefetching the subject line shows even when the network drops. Dynamic holes just wait.

Navigationawait navigation() — never in a prefetch
Priya NairSun

With Partial Prefetching the subject line shows even when the network drops. Dynamic holes just wait.

YouSun

Try the Offline Resilience demo next — same shell idea with useOffline feedback.

Priya NairSun

Already queued. Ping action retry is the part I care about most.

How the stages defer

import { prefetch as prefetchStage, navigation } from "next/cache";

async function PrefetchPreview({ id }) {
  await prefetchStage();          // out of shell; in per-link prefetch
  return <Preview data={await getCachedPreview(id)} />;
}

async function NavigationThread({ id }) {
  await navigation();             // only on real navigation
  return <Thread items={await getCachedThread(id)} />;
}