How-to
Everything we've written on how-to, drawn from live client engagements.
Using AI to Write Content Without Tripping Google Spam Policies
Google rewards helpful, people-first content no matter how it was made. The line you cannot cross is scaled content abuse. Here is how to stay on the right side of it.
Multi-Agent Content Systems: Research to Published Post on Autopilot
One model writing a whole post is a generalist. A team of narrow agents, each doing one job, is a system. Here's the difference.
Automating Keyword and Competitor Research With AI
Your competitors' best pages and your buyers' real questions are public. The only question is who reads them first, and how often.
Turn Google Search Console Into an AI Opportunity Finder
You are already ranking on page two for things you never wrote about. An AI agent's job is to find them before you waste effort elsewhere.
Automated Technical SEO Audits: Crawl, Score, and Fix With AI
A once-a-year audit finds problems a year too late. The point of automating it is that it never stops looking.
Programmatic and E-commerce Product SEO at Catalog Scale
Generating ten thousand pages is easy. Generating ten thousand pages worth indexing is the entire problem.
RAG for SEO: Grounding AI Content in Your Own Data
The reason AI content sounds interchangeable is that everyone feeds the model the same nothing. RAG feeds it your data instead.
Answer Engine Optimization: Getting Cited by AI, Not Just Ranked
Ranking first means nothing if the AI answers the question above your link and the user never scrolls. The new goal is being the source it quotes.
SEO Foundations That Make You Eligible for Google AI Search
There is no separate AI checklist. If a page can rank in Search with a snippet, it is already eligible for AI answers. Here is how to get there.
Titles, Meta Descriptions, and Social Cards: The Next.js Metadata Playbook for Every Business Size
Your title tag is the ad you never wrote. Here’s how to make Next.js render one that gets clicked, whatever size you are.
Structured Data in Next.js: How JSON-LD Gets You Cited by Google and AI
Structured data is how you tell Google and AI what your page means, not just what it says. Here’s the Next.js way to ship it.
AI Agents for SEO: What the n8n Agent Node Actually Does
A workflow follows the steps you gave it. An agent decides its own steps. Knowing which you need is most of the battle.
AI Content Engines: Automating SEO Blog Production With n8n
A keyword goes in one end, a published post comes out the other. Here's how to build that without publishing garbage.
On-Page SEO Automation: Titles, Meta, Schema, and Internal Links
The boring on-page work is where most SEO is won and lost. It is also exactly the work AI does faster than you and never forgets.
Sitemaps and robots.txt in Next.js: Telling Crawlers and AI Bots What Actually Matters
A crawler’s time on your site is a budget. Sitemaps and robots.txt are how you spend it on the pages that make you money.
Redirects in Next.js: How Not to Torch Your Rankings in a Redesign
Every redesign is a chance to lose the rankings you spent years earning. Redirects are the seatbelt. Here’s how to wear it.
Speed Is a Ranking Factor: The Next.js Performance Checklist by Business Size
Google measures your speed with real users and ranks you on it. Next.js hands you the tools to win. Most sites leave them switched off.
AGENTS.md and llms.txt: Making Your Next.js Project Legible to AI
AI reads your code and your site whether you help it or not. Two small files decide whether it reads them right.
The Next.js MCP Server: Letting AI Agents See Your App While They Build It
An AI agent guessing at your app’s state is slow and wrong. One that can read it live is a different tool entirely.
Make Your Site Read Like the Firm You Are: Positioning for Professional Services
Your buyers compare three firms in a tab each. Generic copy makes you the one they close. Specific positioning makes you the one they call.
The Professional Services Growth Playbook, by Firm Size
Same fundamentals, different scale. The right move for a solo practice is the wrong move for an enterprise firm, and vice versa.
Who Is Actually Searching for Your Firm: Market Sizing for Professional Services
Most firms market on instinct. The ones that win start with the number: how much real demand exists, and how much of it you can take.
Anthropic API Prompt Caching: The Pattern That Saves Thousands on Content Generation
Prompt caching cuts our content-gen costs by an order of magnitude. Here’s how and where it works.
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.
Supabase Row Level Security: The Multi-Tenant Pattern We Use Across FH Clients
One Postgres database, many tenants, zero data leakage. Here’s the RLS setup that holds up under real production traffic.
Cloudflare DNS and CDN: The Base Configuration for Every FH Client Site
Every FH site sits behind Cloudflare. Here’s the exact configuration and why each setting is where it is.
Google Search Console: From Zero to Actionable in an Afternoon
GSC is free and tells you exactly what Google sees on your site. Most SMBs never look at it. Here’s how we set it up and what we check.
Core Web Vitals 2026: The Metrics That Matter and the Targets That Hold
Three numbers. Hit them and you’re competing on content; miss them and you’re competing one hand tied.
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.
Google Analytics 4: The Conversion Events That Actually Matter
Most GA4 installations track everything and surface nothing. Five events cover what SMBs actually need.
AI-Assisted Content: How to Use Claude for Drafts Without Sounding Like Every Other AI Site
AI drafts are 60% of the work and 0% of the voice. Here’s how to use the time savings without losing the brand.
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.
Supabase Storage for Marketing Sites: The Bucket-Per-Tenant Pattern
Most teams store images in their build artifact. That doesn’t scale. Supabase Storage with the right bucket layout does.
Privacy-First Analytics in 2026: GDPR, CCPA, AI Act, and What SMBs Actually Need
Privacy regulations are converging, not multiplying. Here’s what compliance actually looks like in 2026.
Cloudflare Pages vs Workers vs R2: Picking the Right Cloudflare Product
Cloudflare has 30+ products. Three of them cover 80% of what most SMB sites need.
Google Search Console Performance Report: Reading the Data Without Lying to Yourself
Most teams misread the Performance report the same five ways. Here’s the honest read.
Server-Side Tagging: When SMB Sites Should Pay For It (and When They Shouldn’t)
Server-side tagging is hot. For most SMB sites it’s a $300/month answer to a problem you don’t have.
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.
Optimizing INP: The Five Patterns That Fix Interaction Latency
INP is the hardest of the three Core Web Vitals to hit. Five patterns cover most of what we ship to fix it.
RAG for SMB Sites: When Retrieval-Augmented Generation Actually Solves a Real Problem
RAG is the right answer about 10% of the time. Here’s the framework for the other 90%.
Supabase Edge Functions: When They’re Worth It and When They’re Not
Edge Functions are great for jobs that have to live outside your Next app. Not everything does. Here’s the decision framework.
Accessibility Law in 2026: The Lawsuit Landscape and the Compliant Build Posture
Accessibility lawsuits are up. Compliance is mostly about practice, not policy. Here’s what we ship.
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.
Google Analytics 4 Consent Mode v2: The Implementation That Doesn’t Break Your Data
Consent Mode v2 is required for ads-data in the EU. Implement it right and you don’t lose visibility for users who decline.
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.
Supabase Realtime: When SMB Sites Actually Need It (and When They Don’t)
Realtime sounds magical. For most SMB sites it’s a feature looking for a problem.
GA4 Attribution Models: Which One to Look At When
Data-driven attribution is the default but it lies to small accounts. Here’s the per-channel reality check.
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.
Cloudflare Workers: When Edge Functions Actually Earn Their Keep
Workers are fast and cheap. They’re also the wrong answer for half the things people use them for. Here’s when they fit.
Container Queries Everywhere: The CSS Feature That Killed the Breakpoint Mindset
Container queries went stable across browsers in 2024. The mental model shift is bigger than people realize.
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.
UTM Strategy for SMBs: The Tagging Conventions That Survive a Year
Sloppy UTM tagging is the cheapest way to lose your analytics. Here’s a convention that holds up.
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.
Embeddings for Internal Search: The Pattern That Replaces ElasticSearch for Most SMB Sites
Most SMB sites have either no internal search or terrible internal search. Embeddings fix it for $0 of new infrastructure.
Reading Supabase Logs: The Five Queries That Catch 80% of Production Issues
The Supabase log explorer is underused. These five queries are the first place we look when something’s wrong.
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.
Joining GA4 with Search Console: The Reporting View That Tells You What Actually Works
Search Console shows what queries clicked. GA4 shows what queries converted. The join shows what actually matters.
Cloudflare WAF and Bot Management for SMB Sites: The Rules That Actually Work
WAF isn’t set-and-forget. Here’s the configuration that catches the real attacks without breaking legitimate traffic.
Critical CSS and Font Loading: The Last 200ms of LCP
Once you’ve fixed images and JS, font and CSS strategy is the next LCP lever. Here’s the pattern.
Why Isn't My Page Indexed? 8 Causes, Fixed
‘My page isn’t indexed’ has eight common causes. Six of them are fixable in an hour.
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.
Supabase Performance: Indexing, Connection Pooling, and the Postgres Settings That Matter
Supabase is Postgres. Most performance issues are Postgres issues with Postgres solutions.
Tool Use With Claude: Building Agents That Don’t Hallucinate Your Production Data
Agents are powerful when they have tools. They’re dangerous when those tools aren’t bounded. Here’s the safe pattern.
Migrating from Firebase to Supabase: The Real Cost and the Step-by-Step Plan
Firebase pricing scales worse than Supabase past a certain point. Here’s the migration plan that worked for one of our clients.
Reducing Third-Party Script Weight: The Audit Pattern That Saves Half Your JS Budget
Third-party scripts are where bundles really go to die. Here’s the audit and the policy.
Schema Markup for SMB Sites: The Three Types That Actually Help
Schema is one of the highest-ROI SEO investments. Three types cover 90% of the value.
Cost-Effective AI: How to Pick Claude Opus vs Sonnet vs Haiku for Each Workload
Opus for the hard stuff. Sonnet for daily work. Haiku for high-volume cheap work. Mixing them right cuts costs by 70%.