Back to All Articles
by Pritam Mandal•2026-01-12•5 min read

Achieving 100/100 Lighthouse on Dynamic Next.js Platforms

Techniques for zero-runtime CSS, streaming server components, image optimization at the edge, and font subset preloading.

P
Pritam MandalAuthor & Engineering Lead
365 Expand
Achieving 100/100 Lighthouse on Dynamic Next.js Platforms

The Myth of Sacrificing Dynamics for Speed

Modern web applications are often assumed to be either static and fast, or dynamic and bloated. With the advent of React 19 Server Components and edge execution, this trade-off is no longer necessary.

By keeping the majority of component trees on the server and shipping zero JavaScript for informational sections, we drop total client bundle sizes by over 70%.

Font & Asset Optimization Protocols

Font swapping and delayed typography loading are the primary causes of layout shift. We use next/font with Geist font variable subsetting, injecting glyph metrics directly into the document root.

Dynamic media is pre-converted to AVIF and WebP with aggressive srcset sizing, ensuring high-DPI displays receive razor-sharp images without transferring excess megabytes.

// Root font optimization with zero layout shift
import { Geist, Geist_Mono } from "next/font/google";

const geistSans = Geist({
  variable: "--font-geist-sans",
  subsets: ["latin"],
  display: "swap",
});

Conclusion

Performance is a fundamental product feature, directly impacting user engagement, bounce rates, and organic search indexing. Every platform engineered at 365 Expand adheres to strict sub-second performance budgets.

Got a project in mind? Let's talk.

Whether it's a web app, mobile product, or AI automation — our team can help scope, build, and launch it.

Discuss Your Project →