DEV Community

Michael Butts
Michael Butts

Posted on

I Built a Complete Affiliate SEO Site in 2 Weeks Using Only AI — Here's the Full Stack

I wanted to test a hypothesis: Can a solo operator build a legitimate, content-rich affiliate site in under 2 weeks using AI tools?

Spoiler: Yes. I built toolkit.buildoutreach.io — a contractor software review site with 26 in-depth review and comparison pages, 6 free tools, 19 blog articles, and full SEO infrastructure. Here's exactly how I did it, what worked, and what I'd do differently.

The Stack

  • Hosting: Vercel (free tier)
  • Domain: Cloudflare DNS
  • Content: Static HTML (no framework, no CMS)
  • SEO: Google Search Console, IndexNow API, FAQ Schema
  • Email: Resend + Stripe (lead capture → automated drip)
  • Analytics: Vercel Analytics
  • Payments: Stripe Payment Links
  • AI: Claude for content generation, research, and code

Why Static HTML?

I know, I know. It's 2026. Everyone's using Next.js or Astro.

But here's the thing: static HTML loads instantly, costs nothing to host, and Google loves it. My pages hit 95+ Lighthouse scores without any optimization work. No hydration, no bundle splitting, no build step.

For an affiliate content site, the content IS the product. I don't need client-side routing or server components. I need fast pages with good content.

The Content Architecture

Here's what I built in 14 days:

Affiliate Review Pages (26 pages)

  • Individual reviews: Jobber, Housecall Pro, ServiceTitan, Workiz, FieldPulse, Kickserv, Joist, Buildertrend
  • Head-to-head comparisons: Jobber vs Housecall Pro, Jobber vs ServiceTitan, Jobber vs FieldPulse, Housecall Pro vs Workiz
  • Category roundups: Best Field Service Software, Best CRM for Contractors, Best Scheduling Software, Best Invoicing Software, Best Estimating Software, Best Free Contractor Apps
  • Trade-specific guides: Best HVAC Software, Best Plumbing Software, Best Electrical Contractor Software

Every review follows the same structure:

  1. Quick verdict + score
  2. Pricing breakdown
  3. Feature deep-dive
  4. Pros/cons
  5. Who it's best for
  6. FAQ schema (for rich snippets)
  7. Comparison table
  8. Cross-links to related reviews

Free Tools (6 tools)

  • Follow-up message generator
  • Estimate calculator
  • Resume bullet generator
  • Marketing scorecard quiz
  • 47-point marketing checklist
  • Google review link generator

The tools serve two purposes: they provide genuine value (people actually use them) and they create organic backlinks when people share them.

Blog Content (19 articles)

  • 10 trade-specific marketing guides (HVAC, plumber, electrician, roofing, landscaping, painting, pest control, carpet cleaning, tree service, pressure washing)
  • AI prompt guides for different niches
  • Comparison articles

SEO Infrastructure

Content without distribution is just a hobby. Here's what I set up:

Google Search Console

Verified via HTML file upload. Submitted sitemap.xml with all 50 URLs.

IndexNow

Used the IndexNow API to ping Bing and Yandex immediately after deploying new pages:

// Simple IndexNow submission
const response = await fetch("https://api.indexnow.org/IndexNow", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    host: "toolkit.buildoutreach.io",
    key: "your-key-here",
    keyLocation: "https://toolkit.buildoutreach.io/your-key.txt",
    urlList: urls
  })
});
Enter fullscreen mode Exit fullscreen mode

Internal Cross-Linking

This is the most underrated SEO tactic. I built 270+ internal links across all pages. Every review links to:

  • The relevant comparison pages
  • The category roundup it appears in
  • The trade-specific guide where applicable
  • Related blog articles

This creates a dense link graph that helps Google understand the site's topical authority.

FAQ Schema

Every review page includes structured FAQ data:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does Jobber cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Jobber starts at $49/month..."
      }
    }
  ]
}
</script>
Enter fullscreen mode Exit fullscreen mode

This can trigger rich snippets in Google search results, dramatically increasing click-through rates.

Email Capture + Automated Drip

Every page has an email capture form that:

  1. Creates a Stripe customer (for later monetization)
  2. Sends a niche-matched welcome email via Resend
  3. Enrolls them in a 5-day automated email course

The welcome email delivers immediate value (a marketing cheat sheet) so subscribers feel good about signing up.

What I Learned

1. Content is the easy part

With AI, I can generate a high-quality 2,000-word review page in about 20 minutes. The hard part is distribution.

2. Internal linking > external backlinks (early on)

When you have zero domain authority, internal links are the only signals you control. Build them aggressively.

3. Static HTML is underrated for SEO sites

Zero build step, instant deploys, perfect Lighthouse scores. The tradeoff (no dynamic features) doesn't matter for content sites.

4. Trade-specific content > generic content

"Best HVAC Software" converts better than "Best Field Service Software" because the searcher is more specific about what they need.

5. Free tools are the best backlink generators

People share useful tools. Nobody shares review articles.

Results So Far

Honestly? Zero traffic and zero revenue. The site is 2 weeks old. SEO takes 3-6 months to compound.

But the infrastructure is solid:

  • 50 URLs indexed
  • 270+ internal links
  • Email capture on every page
  • Automated drip sequences
  • Affiliate programs approved

I'll update this post in 90 days with real traffic and revenue numbers.

The Full Site

Check it out: toolkit.buildoutreach.io

Everything's live — the reviews, the tools, the blog. If you're building an affiliate site, feel free to steal the structure.


What's your experience with AI-assisted content sites? Has anyone else gone the static HTML route? I'd love to hear what's working for you.

Top comments (0)