Next.js
Next.js, Supabase, Cloudflare, and the deploy plumbing under every FH site.
The Platform Under a Fast Professional Services Site: Next.js and Cloudflare in Plain English
Most firm sites are built on plumbing that makes them slow to load and painful to change. The platform choice is why, and it is fixable.
Next.js 16.1 in Production: The Migration Playbook We Run on Every FH Site
Next 16.1 is the lean target. Here’s the exact migration we run, what breaks, and what to delete after.
App Router Patterns That Actually Scale in 2026
App Router is a different mental model than Pages. Most teams misuse it the same way. Here’s the structure that holds up at 100+ routes.
Server Components vs Client Components: The Mental Model That Stops You Reaching for ‘use client’
Most teams add ‘use client’ because they’re scared. The bundle pays for it.
Server Actions for Lead Forms: Replacing Your API Routes Without Losing Sleep
Server actions cut form code in half and ship progressively enhanced HTML. Here’s how to use them without leaking a database query.
Cloudflare Turnstile: The CAPTCHA That Doesn’t Make Your Users Hate You
reCAPTCHA hurts conversion. Turnstile doesn’t. Here’s the wiring that keeps your forms spam-free without the click-the-bicycles ritual.
Next/Image with Supabase Storage: The Pattern That Saves 70% of Hero Image Bandwidth
Most teams either skip next/image (and ship 4MB heroes) or misconfigure it (and break Coolify deploys). Here’s the pattern that works.
Sitemaps for Next.js Sites: The Pattern That Keeps Google Indexed
Sitemaps aren’t optional. Here’s the pattern that ships with every FH client build.
ISR, SSG, SSR, and Edge: Picking the Right Rendering Mode for Each Page
Static for marketing pages. ISR for blog. SSR for dashboards. Edge for low-latency reads. Most teams pick wrong.
Bundle Size Budgets: How to Stop JS Bloat Before It Ships
Without a budget, JavaScript weight only goes up. Here’s how to enforce one in CI.
Supabase Auth With Next.js App Router: The Setup We Actually Ship
Most auth tutorials show the wrong pattern. Here’s what actually works in production.
Next.js Middleware: The Five Patterns That Earn Their Keep
Middleware runs on every request. Use it for things that have to happen before the page renders. Stop using it for everything else.
Deploying Next.js on Coolify: The Production Posture We Run Across the FH Client Book
Coolify is cheap, fast, and self-hosted. It’s also the deploy environment where we’ve hit the most breakage. Here’s the posture that works.
Static Generation at Scale: Why FH Builds Ship 800+ Pages Without a Headless CMS
Headless CMS is the wrong answer for most marketing sites. Static generation from TypeScript data is faster, cheaper, and easier to maintain.