Setting the file. One moment.
Subchapter 7.12
references/playbooks/saas.mdMarkdown3 KBView on GitHub
Multi-tenant applications with authenticated dashboards, settings, billing. Auth-gated by default. Traffic skews toward function duration (per-user data fetches) over edge requests.
Function Duration dominates (every dashboard request runs the function fully — no edge caching for auth-gated content). Edge Requests grow with API surface. ISR rarely applies. Image Optimization rarely material.
React.cache() dedupes within the request. Cite vercel-react-best-practices:server-cache-react.Promise.all. Cite vercel-react-best-practices:async-parallel and :server-parallel-fetching.after() (Next 15+) or waitUntil() from @vercel/functions. Cite vercel-react-best-practices:server-after-nonblocking..findUnique inside a .map. Use include or batch via DataLoader.await getSession() then await checkPermissions() then await loadData() — these can often be parallelized when the permissions check doesn’t depend on the data load.revalidateTag triggered by the mutation that actually changes state.vercel-react-best-practices:server-cache-react — per-request dedupvercel-react-best-practices:server-parallel-fetching — restructure for Promise.allvercel-react-best-practices:async-suspense-boundaries — stream the dashboard shellvercel-react-best-practices:server-after-nonblocking — defer audit/analytics writes (Next 15+)vercel-react-best-practices:client-swr-dedup — replace polling with SWRhttps://vercel.com/docs/fluid-compute — when cold starts hurt