Skip to main content
Dual-monitor web development desk with website platform logos and a dark code editor
Engineering

What enterprise software actually needs from the Next.js App Router

Server Components, streaming, and typed data layers are not blog-demo features. They are how we keep enterprise software fast, cacheable, and maintainable after the original team rotates.

Sofia Rahman · Director of Engineering · 10 min · August 5, 2026

The App Router is a rendering model, not a folder fad. Enterprise software needs a clear split: server components fetch and authorize, client components handle interaction, and nothing in between leaks secrets into the browser bundle.

We default to streaming shells for authenticated products. The chrome and the permissioned data should not share a waterfall. Caching is explicit: tags, revalidation, and a policy for what is user-specific versus what is shared. Accidental personalization in a shared cache is an incident.

Typed end-to-end contracts (Zod on the boundary, generated types from the API) stop the slow death of “any” that appears six months after launch. Headless CMS content gets the same treatment: schemas, preview, and localization as code, not CMS folklore.

Performance budgets are release gates. If a template cannot hit its LCP target with production third parties enabled, it does not ship. That single rule has saved more enterprise software launches than any after-the-fact speed project.