Everyone seems to be obsessed with heavy Server Actions, complex ORMs, and edge databases right now. But I wanted to see how far I could push the absolute raw performance of Next.js 15 using only functional programming and pure Static Site Generation (SSG).
My goal was to build a massive suite of developer utilities (formatters, converters, regex testers) that loaded instantly and respected user privacy by never sending data to a backend.
Here is how I architected DevFormat to generate over 140 localized, high-performance routes without a single database call.
1. The Programmatic SEO "Factory" Pattern
Instead of writing 100 individual page components for things like "JSON to Go" or "cURL to Python", I built a centralized routing engine using the [locale]/[slug]/page.tsx convention.
I defined a strict TypeScript configuration map of target languages and regex patterns. At build time, generateStaticParams iterates over this map, cross-references my i18n locales (English and French), and statically pre-renders every single combination.
The result? The server does the heavy lifting once during the Vercel build, and the user gets a pure HTML/JS file delivered from the Edge CDN in under 50ms.
2. Offloading Compute to the Client (Privacy by Design)
The biggest issue with existing dev tools is data leakage. Pasting a production JWT or a proprietary JSON schema into a server-rendered tool is a massive security risk.
To solve this, I completely disabled SSR for the actual tool logic using next/dynamic with ssr: false.
All parsing—whether it's quicktype-core for generating Rust structs or crypto-js for SHA-256 hashing—runs strictly inside the browser memory.
- The UX benefit: Zero network latency when a user clicks "Format".
- The Security benefit: You can literally turn off your Wi-Fi, and the tools still work perfectly.
3. The "Suspense" Gotcha in Next 15
One massive headache I ran into was implementing analytics. In Next 15, reading useSearchParams() for my PostHog proxy caused the static build to throw a Missing Suspense with CSR Bailout error.
If you are building SSG pages in Next 15, you must wrap any component reading search params in a <Suspense> boundary, or the compiler panics and bails out of static generation.
The Final Result
The platform is live, totally free, and currently houses 25+ tools (from UUID v7 generation to Regex debugging).
If you want to poke around and test the 0ms routing speed, or if you just need a secure place to format some JSON without leaking your API keys, you can check it out here:
👉 DevFormat: The Local-Only Developer Workbench
(I highly recommend checking out the JSON to Rust Converter to see the client-side parsing in action).
I’d love to hear your thoughts on this architecture. Are you guys still leveraging heavy SSG, or has everyone moved to SSR/PPR for side projects?
Top comments (0)