Every engineering decision at ObsidianX starts with a question: will this still be the right choice in three years? When we standardized on Next.js as our primary framework, the answer was an unambiguous yes. Here's why.
Server Components Changed the Game
React Server Components, fully realized in Next.js 15, fundamentally altered how we think about data fetching. Instead of spinning up separate API layers or wrestling with client-side caching, our pages fetch data directly on the server with zero client-side JavaScript overhead. For a Payload CMS-powered site like this one, that means every portfolio page, blog post, and service listing loads in a single server round-trip.
The Full-Stack Sweet Spot
Next.js occupies a unique position: it's a React framework that genuinely handles both frontend and backend concerns. API routes, middleware, server actions, image optimization, and edge rendering all live under one roof. For our team, this eliminates the cognitive overhead of maintaining separate services for what are fundamentally parts of the same application.
Performance by Default
Out of the box, Next.js gives us:
- Automatic code splitting per route
- Built-in image optimization with next/image
- Static generation for pages that don't change often
- Incremental Static Regeneration for content that updates periodically
- Edge middleware for geo-routing and A/B testing
These aren't features we have to configure — they're defaults. Our Lighthouse scores consistently hit 95+ across all metrics without manual tuning.
Deployment and Infrastructure
Vercel's platform is purpose-built for Next.js, but we're not locked in. We've deployed Next.js apps on AWS via SST, on Coolify with Docker, and on bare metal with Node. The framework's flexibility means our clients aren't tied to any single infrastructure provider.
The Ecosystem Effect
Payload CMS, Auth.js, tRPC, Drizzle, Tailwind — the tools we rely on daily are all built with Next.js as a first-class target. When your framework is the center of gravity for the JavaScript ecosystem, integration friction drops to near zero.
We've evaluated alternatives. Remix is excellent. Astro is brilliant for content sites. But for the full-stack, CMS-driven applications we build for clients, Next.js remains the most productive and reliable choice we've found.

