← Back to Blog
Web Dev3 min read

Web Dev Joy

David Broadhurst

Web Dev Joy: Coming Back to What Works

As a polyglot programmer, I move across different tech stacks regularly — games, mobile apps, backend services, web. They all have their quirks and their strengths. But recently, after finishing a stretch of Unity development, I picked up web development again to build this personal site, and honestly it reminded me just how enjoyable the modern web stack has become.

The Laravel Detour

During 2025 I seriously started thinking about switching from Single Page Application (SPA) development over to something like Laravel. The appeal was a more opinionated, well-defined stack — one where the decisions have largely been made for you and there's a clear, community-supported way to do most things. Laravel looked clean, mature, and purposeful, so I started a few test projects to get a feel for it.

Things went well at first. But as I dug deeper, that "one supported solution" premise started to unravel. Laravel actually offers multiple competing approaches depending on how you want to assemble your stack. Authentication alone gives you a choice between Breeze, Jetstream, Fortify, and Sanctum — each suited to different setups. For the frontend, you can pick Blade templates, Livewire for reactive components without writing JavaScript, Inertia.js paired with Vue or React, or drop in a full JavaScript front-end yourself. Add to that the options around queuing backends (Redis, database, Amazon Simple Queue Service (SQS)), broadcasting drivers, and caching layers, and suddenly the "everything figured out" promise feels a lot less true. It's a great framework — I understand why developers love it — but it wasn't the simplicity I was after.

Coming Back to Next.js

One afternoon I started a clean React project almost as a side experiment, and slowly I began to appreciate just how far Next.js and Vercel have come. Everything a developer could need to build a web project is covered — server rendering, static generation, API routes, middleware, edge functions — and the flexibility that once felt overwhelming now feels like a genuine advantage. With experience, choosing a consistent approach across those options is straightforward. For someone newer to the stack it can be daunting, but for me it's just freedom.

The Vercel integration marketplace has also made connecting third-party services far less painful than it used to be. Most integrations have a free tier to evaluate before committing, which makes experimentation low risk.

My Current Core Stack

These are the packages I'm happiest with right now:

React — The UI library everything else here is built on. Component-based, declarative, and so widely adopted that tooling and community support around it are exceptional.

Next.js — The full-stack React framework. File-based routing, React Server Components, API routes, and seamless deployment on Vercel. It handles both frontend and backend concerns without needing a separate server.

Vercel — The deployment and hosting platform built around Next.js. Push to GitHub and it's live, with preview deployments on every branch. The integrations store alone is worth it.

Clerk — Authentication and user management done properly. Drop-in components for sign-in, sign-up, and user profiles, with solid support for organizations and role-based access. Saved me from building auth from scratch.

Tailwind CSS — Utility-first Cascading Style Sheets (CSS) framework. Write styles directly in your markup, keep everything co-located, and stop fighting a separate stylesheet. Once it clicks, going back feels painful.

ShadCN/UI — A component library built on top of Tailwind and Radix UI. Unlike most libraries, you own the components — they live in your project, not buried in a node_modules folder. Accessible by default and straightforward to customize.

Where I've Landed

Laravel is genuinely good software and I'll likely revisit it for the right kind of project. But for where I am right now — building personal projects and experimenting quickly — Next.js with this stack hits a sweet spot of flexibility, tooling quality, and developer experience that's hard to argue with.

— David