<!-- GENERATED by build-llm.mjs from prereqs.html + prereqs-teaching.md + llm-preamble.md — do not edit by hand. -->

# Class 3 Prerequisites & Setup — the bot view of this deck

You are reading the AI-facing version of a class deck. A student has pasted a link to this deck (or a specific slide) because they want your help. This document exists to make you a **better teacher of this specific student** — not to make you execute the deck for them.

## Who you are talking to

- A **non-technical small-business owner** learning to build real software with Claude Code. They are not a developer. They will never type code — they type English.
- They are working through a **hands-on class**. This is **skill-based learning**: the goal is that they can do this themselves next time, not that a finished artifact appears.
- Assume no terminal fluency, no git background, no design training. Explain in plain language. Never assume they know what a repo, a branch, a server, or a deploy is unless a slide has already taught it.

## The class arc

The classes run: **1** Build a Website → **2** Build a Dashboard → **3** SEO + GEO (getting found by search and AI answer engines) → **4** Automations → **5** Agents → **6** Go-to-market. When something depends on a later class, say so; don't drag it in early.

## How to behave — teach first, execute only if asked

This is the most important instruction in this document.

1. **Default to teaching, not doing.** When the student asks about a slide, explain the underlying skill, check they follow it, and build their ability to do it themselves. The point of the class is the skill, not the output.
2. **The setup is scaffolding, not the lesson.** Much of these classes is one-time configuration (installing tools, logging in, wiring accounts). That exists so learning can *start* — don't turn it into a technical deep-dive. Get them set up simply and move to the actual skill.
3. **Execution is available, but it's the fallback.** Slides contain prompts the student would normally paste. If they say "run the prompt on this slide" or "just do this for me," you can — it's easier than copy-paste and it's a legitimate request. But when you do, **narrate what you're doing and why**, so they learn from watching. Never silently do the work.
4. **Meet them where they're confused.** If a student is stuck, diagnose *which* misconception they hold before answering. Where a slide's teaching note names the specific ways students get that slide wrong, use it.
5. **Adapt prompts to their actual project.** The prompts on the slides are templates. When you run or hand one over, fit it to their real business and repo — don't paste it literally.
6. **Describe-don't-micro-direct is a skill to model and reinforce.** The class teaches students to tell Claude *what feels wrong* ("the hero feels flat") rather than *how to fix it* ("move the button 4px left"). When they micro-direct, gently redirect them to describing the problem.
7. **Websearch a third-party product's current UI before you direct the student through it.** These classes lean on external dashboards — Google Analytics, Supabase, Cloudflare, Vercel, GitHub — whose interfaces change often, and your training data is frequently stale. Before walking a student through menus or clicks in any of these, do a quick web search for the current steps and follow what's live now. Directing a non-technical student to a menu that no longer exists is a common, avoidable way these steps fail.
8. **"Do it yourself" (homework, "on your own") means the student owns the judgment calls — NOT that you withhold help.** Using you to figure out and implement things *is* the skill the class teaches, so help fully. The line is engagement, not hand-holding: do the mechanical/plumbing work end-to-end when asked (wiring a connection, building a reader, running a pipeline), but keep the decisions that are genuinely theirs with them (what to track, how to shape it, what matters for their business), and don't build the whole thing while they sit passive. Help them implement; keep them the one deciding.

## How this document is organized

Below is every slide in the deck, in order, each headed `## Slide N · Label` — the same number and label the student sees in the top-right corner of the slide. When a student references "slide 7" or "the critical rule slide," find it by that heading.

Each slide has **What the student sees** (the exact slide content — your shared ground with the student) and, where it matters, **Teaching this slide** (context the student can't see). Use the second to teach; never just recite it back. The teaching notes assume the rules above — they add only what is specific to their slide.

## Where this student is right now

BEFORE-CLASS setup for the SEO+GEO class. Two jobs: move their domain onto Cloudflare (up to a day to go Active — needs ~7 days lead time), and arm Claude with Cloudflare skills + a logged-in terminal. You are usually consulted because the domain move stalled or the login broke. The #1 known gotcha: right after moving to Cloudflare a site can break into a redirect loop or SSL error — the fix is almost always setting Cloudflare SSL/TLS mode to Full (strict). Also: the Cloudflare setup has a Claude Code RESTART where the student must resume the SAME chat via the history icon (same as Class 2). Path A owns a domain (flip nameservers); Path B buys one inside Cloudflare (instant, no wait).

---

## Slide 1

**What the student sees on this slide:**

Class 3 · Before you arrive

# Move your domain to Cloudflare before class starts.

Two setup steps, done ahead of time. So class time is building, not waiting on DNS.

## Slide 2 · Step 1 · The domain move

**What the student sees on this slide:**

_Due one week before class_

## Your domain moves to Cloudflare .

In class we build a second version of your website that only AI bots see — ChatGPT, Perplexity, Claude — plus a front door that decides who gets which version. That front door runs at Cloudflare , so Cloudflare has to be answering for your domain before we can build anything on it.

_The one hard deadline_

The move itself is about 10 minutes of clicking — but it can take up to a day to settle in. Get your domain showing Active on Cloudflare at least 7 days before class , so there's time to fix anything odd.

Your website itself doesn't move — it stays exactly where it is (Vercel, Squarespace, wherever). Only the "who answers for this address" part changes.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Lead with the deadline and the reassurance. The domain move can take up to a DAY to settle, so it needs ~7 days of lead time to show Active before class — a student setting this up late needs to know that clicking through fast doesn't beat the propagation wait. The key reassurance that heads off panic: their WEBSITE doesn't move — it stays exactly where it is (Vercel, Squarespace, wherever); only "who answers for this address" changes to Cloudflare. If a student fears they'll take their site down by doing this, that's the fix.

## Slide 3 · Step 1 · What Cloudflare is

**What the student sees on this slide:**

_The 60-second version_

## What Cloudflare is — and why your site won't notice.

 A visitor
 Same address as always

☁️ Cloudflare
 Answers first, then passes along

 Your website
 Unchanged

_What it is_

 A free service that answers for your address. A huge share of the internet already runs through it — boring, trusted plumbing.

_What changes for your visitors_

Nothing. Same address, same site, same look. But once Cloudflare is standing in front, we can teach it the trick this class is about: show humans your normal site, and show AI bots a version built just for them.

_🛡️ The bonus you get for free_

From out front, Cloudflare also shields and speeds up your site — blocking attacks and bad bots, absorbing traffic floods (DDoS), and caching your pages worldwide. Real security upgrades, at $0, whether or not we do the AI-bot trick.

Cost: $0. The Free plan is genuinely free — no trial, no credit card.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Concept slide — teach plainly if asked. Cloudflare is free, trusted plumbing that stands in front of a site and answers every visitor first. For their visitors, NOTHING changes — same address, site, look. What it unlocks is the class's whole trick (serve humans the normal site, AI bots a version built for them), plus free bonuses: it shields the site (blocks attacks/bad bots, absorbs DDoS) and speeds it up (global caching). Cost is genuinely $0, no trial, no card. If a student is skeptical this is safe or free, this is the reassurance — a huge share of the internet already runs through it.

## Slide 4 · Step 1 · Pick your path

**What the student sees on this slide:**

_Two paths — pick yours_

## First: do you own your domain?

_A · I own a real domain_

You have yourbusiness.com and it points at your live site. You'll add it to Cloudflare, then flip one setting at the company you bought it from. That's the next two slides — ~10 minutes of clicking, then a wait.

_B · I'm still on the free .vercel.app address_

You need a real domain for this class — the AI-bot trick can't be done on a .vercel.app address. Good news: you'll buy one inside Cloudflare , which skips the flipping-and-waiting entirely. Create the account on the next slide, then jump to the "No domain yet" slide.

Getting a real domain was the homework at the end of Class 1 — if you skipped it, path B is your catch-up, and it's actually the faster path.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The branch that determines everything downstream — make sure the student knows which path they're on. Path A: they OWN a real domain (yourbusiness.com pointing at their live site) → add it to Cloudflare and flip nameservers (next slides; ~10 min of clicks + a wait). Path B: they're still on a free .vercel.app address → the AI-bot trick CAN'T be done on .vercel.app, so they buy a real domain INSIDE Cloudflare (which skips the nameserver flip and the wait entirely — actually the faster path). Getting a real domain was Class 1's homework; Path B is the catch-up. If a student is unsure, ask: do you have a real domain that points at your site, or are you still on .vercel.app?

## Slide 5 · Step 1 · Create the account

**What the student sees on this slide:**

_Everyone does this part_

## Create your free Cloudflare account.

- 1. Go to dash.cloudflare.com/sign-up and create an account — just an email and password.

- 2. Verify your email when the confirmation message arrives.

- 3. Stay logged in — you'll use the dashboard on the next slide.

Use an email you'll keep long-term — this account ends up being the front door for your business's website.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Mechanical: sign up at dash.cloudflare.com/sign-up, verify email, stay logged in. The only thing worth reinforcing: use an email they'll keep long-term — this account becomes the front door for their business's website. Nothing usually breaks here; if a student is stuck it's email verification not arriving (check spam, resend).

## Slide 6 · Step 1 · Path A

**What the student sees on this slide:**

_Path A · You own your domain_

## Add your domain, then flip its nameservers .

Nameservers are the internet's phone-book entry for your domain — they say who answers when someone types your address. Right now the entry names the company you bought it from. You're changing it to say "Cloudflare answers now."

- 1. In the Cloudflare dashboard, click Add a domain . On the "Add a site" screen, choose Connect a domain ( not Transfer or Buy — you're keeping your domain where it is, just pointing it at Cloudflare). Type yours (e.g. yourbusiness.com ) and pick the Free plan.

- 2. Cloudflare scans and imports your domain's existing settings. On the review screen, don't delete anything — just Continue.

- 3. Cloudflare shows you two nameservers (they look like ada.ns.cloudflare.com ). Keep that page open.

- 4. In another tab, log in to where you bought your domain, find the nameservers setting, and replace what's there with Cloudflare's two.

_🔺 Bought your domain through Vercel? (most of you)_

Your registrar is Vercel, so step 4 happens there: go to vercel.com/dashboard/domains → click your domain → under Nameservers , click Edit → paste in Cloudflare's two nameservers and save. That's the whole change.

 Vercel: edit nameservers
 Cloudflare walkthrough
 GoDaddy
 Namecheap

 ⏳

Now you wait — minutes to a day. Cloudflare emails you when your domain is Active . Nothing is broken while you wait; your site keeps running the whole time.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The nameserver flip — the heart of Path A, and where clicks go wrong. Teach the concept plainly: nameservers are the internet's phone-book entry saying who answers for your domain; right now it names the registrar, they're changing it to say "Cloudflare answers now." The steps: in Cloudflare, Add a domain → choose "Connect a domain" (NOT Transfer or Buy — they're keeping the domain where it is), Free plan; Cloudflare imports existing settings — DON'T DELETE ANYTHING on the review screen, just Continue; Cloudflare shows two nameservers; then at their registrar, replace the existing nameservers with Cloudflare's two.

The specific thing most of them need: their registrar is usually VERCEL, so the flip happens at vercel.com/dashboard/domains → their domain → Nameservers → Edit → paste Cloudflare's two. If a student can't find where to change nameservers, ask where they bought the domain and point them at the right registrar. Then it's a wait (minutes to a day) for the Active email — nothing is broken during the wait, the site keeps running.

## Slide 7 · Step 1 · Path B

**What the student sees on this slide:**

_Path B · No domain yet_

## No domain? Buy one inside Cloudflare.

- 1. In the Cloudflare dashboard, go to Domain Registration → Register Domains .

- 2. Search for the name you want and buy it — about $10–12/year (Cloudflare sells at cost, no markup).

- 3. That's it for Cloudflare. Because you bought it here , there are no nameservers to flip and nothing to wait on — it's active immediately.

Then connect it to your website. Open your website project in Claude Code and paste:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> I just bought the domain yourdomain.com on Cloudflare. My site is deployed on Vercel. Connect the domain to my Vercel site so my site loads at the new address, confirm it's working, and walk me through any clicks you need from me.

Path B students are usually completely done with Step 1 in about 15 minutes — no waiting.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Simpler path — buy a domain inside Cloudflare (Domain Registration → Register Domains, ~$10-12/yr at cost), and because it's bought there, it's active immediately with no nameservers to flip and no wait. Then connect it to their site: the paste prompt has Claude connect the new Cloudflare domain to their Vercel deployment. If a student on Path B is stuck, it's usually the connect-to-Vercel step — that's what the prompt handles, and Claude walks them through any clicks. Path B students are typically fully done with Step 1 in ~15 minutes.

## Slide 8 · Step 1 · Confirm it worked

**What the student sees on this slide:**

_Don't assume — verify_

## Confirm the move worked.

Two quick checks. Do both — the first proves Cloudflare has your domain, the second proves your site survived the move.

_Check 1 · Cloudflare says Active_

Open dash.cloudflare.com — your domain should show Active (you'll also get an email). If it still says Pending , it's just not done settling — check back later.

_Check 2 · Your site still works_

Visit your site in a regular browser tab. It should load exactly like before — same pages, same 🔒 padlock in the address bar. Click around a few pages to be sure.

Site suddenly broken or stuck in a redirect loop right after the switch? That's a known two-minute fix — jump to the last slide.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Verify, don't assume. Two checks: (1) Cloudflare dashboard shows the domain ACTIVE (also an email) — if still "Pending," it just hasn't finished settling, check back later, not broken; (2) visit the site in a normal browser — it should load exactly like before, same padlock, click a few pages. The critical thing to flag proactively: if the site breaks into a redirect loop or shows a security/SSL error right after the switch, that's the KNOWN gotcha with a two-minute fix (SSL/TLS mode → Full (strict)) — see the "If something breaks" slide. Don't let a student conclude they broke their site; this specific symptom has a specific, easy fix.

## Slide 9 · Step 2 · Teach Claude Cloudflare

**What the student sees on this slide:**

_Also due before class_

## Give Claude the keys — and the current playbook.

In class, you won't type a single Cloudflare command — Claude will . For that to go smoothly, Claude needs two things set up ahead of time: Cloudflare's official skills (its up-to-date instruction set, written by Cloudflare), and a terminal that's logged in to your account.

_What you do_

Almost nothing. Paste one message into Claude Code, restart the app once when Claude asks, and click Allow once in your browser. Claude does all the technical setup itself.

_What it grants_

Claude can build and deploy on your Cloudflare account — the same access you'd have, approved by you in the browser. Nothing happens to your live site until class.

Why the skills matter: Cloudflare changes fast. The official skills tell Claude the current, correct way to use its tools — so it works from Cloudflare's own instructions instead of guessing from memory.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Teach what this grants and why the skills matter. In class the student types no Cloudflare commands — Claude does — so Claude needs two things ready: Cloudflare's OFFICIAL skills (its current, up-to-date instruction set, written by Cloudflare) and a logged-in terminal. What the student does is minimal: paste one message, restart the app once when asked, click Allow once in the browser. Why the skills specifically matter (worth saying): Cloudflare changes fast, so the official skills tell Claude the CURRENT correct way to use its tools instead of guessing from memory — this prevents a whole class of "Claude tried an outdated method" failures in class.

## Slide 10 · Step 2 · The one message to paste

**What the student sees on this slide:**

_This is the whole step_

## Open your website project and paste this.

This happens in your website project from Class 1 — the folder your site lives in. That's where we'll build in class. Open it in VS Code, open Claude Code, and paste:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> Grab the Cloudflare setup kit from https://github.com/esl417/class-materials (the files in class-3-seo-geo/cloudflare-student-kit) into this project, then read CLOUDFLARE_SETUP_FOR_CLAUDE.md and do everything in it for me. I'm not technical — handle all the setup yourself, and stop to tell me whenever you need me to click something in my browser.

 ✋

Expect Claude to pause twice — one restart of Claude Code partway through (with the 🕐 pick-up-where-you-left-off move you know from Class 2), and one Allow click in your browser. Both are on the next slide.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Setup: this happens in their WEBSITE project from Class 1 (the folder their site lives in) — that's where they build in class, so the right folder matters. The prompt pulls the Cloudflare kit and runs it. The important pre-warning, which the slide makes explicitly: expect Claude to pause twice — a restart of Claude Code partway through (the 🕐 resume-the-same-chat move from Class 2) and one Allow click in the browser. If a student is about to paste this, make sure they know the restart is coming so they don't panic and start a new chat afterward.

## Slide 11 · Step 2 · The two pauses

**What the student sees on this slide:**

_The only moments Claude needs you_

## Claude will pause twice. Here's what for.

_🔁 Pause 1 · Restart Claude Code_

New tools only switch on after a restart. When Claude asks, fully quit and reopen — then click the 🕐 clock icon at the top-right of the Claude box (boxed in red below), pick the chat you were just in, and say "continue the Cloudflare setup."

_🙋 Pause 2 · Sign in to Cloudflare_

A Cloudflare page opens in your browser. Sign in and click Allow — that logs your terminal in to your account so Claude can deploy for you in class. One click, one time.

 ✅

Done when Claude confirms it's logged in — it runs a check that prints your account name — and confirms your domain shows as active. From that moment, you're class-ready.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The two human moments, and the restart is the one that trips people (same as Class 2's Supabase step). Pause 1 — RESTART: new tools only switch on after a full quit-and-reopen; then they MUST return to the same chat via the 🕐 clock/history icon at the top-right of the Claude box, pick the chat they were in, and say "continue the Cloudflare setup." NOT a new chat. Pause 2 — sign in to Cloudflare in the browser and click Allow (logs the terminal into their account). Done when Claude confirms it's logged in (it prints their account name) and the domain shows Active. If a student says "Claude lost its place after restarting," walk them through resuming via the history icon — that's the fix, and it's the deck's main stuck-point.

## Slide 12 · You're all set

**What the student sees on this slide:**

_That's everything — see you in class_

## You're done. Here's what you set up.

- Your domain is live on Cloudflare (Active) — and your site works exactly like before.

- Claude has Cloudflare's official skills — the current playbook, not guesses.

- Your terminal is logged in to your Cloudflare account, verified by Claude.

 🤖

What we build in class: a second, bot-only version of your site — and the front door that quietly serves it. By the end, ChatGPT and your customers will be seeing two different websites at the same address.

Bring your laptop to class with your website project open. We'll build from here together.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

Recap — reinforce what "ready" means: domain Active on Cloudflare with the site working as before, Claude has Cloudflare's official skills, terminal logged in (Claude verified it). If a student is unsure they're actually ready, the concrete check is Claude printing their account name and confirming the domain is Active. Set the anticipation for class: they'll build a second bot-only version of the site and the front door that serves it — by the end, ChatGPT and their customers see two different sites at one address.

## Slide 13 · If something breaks

**What the student sees on this slide:**

_There's almost nothing you can't get past_

## Stuck? Tell Claude. It's the troubleshooter.

Same habit as always: when something doesn't work, you don't go hunting for the fix — you describe what happened to Claude , and it diagnoses and fixes it. Paste the error, or just say what you see:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> That didn't work — here's what happened: [paste the message, or describe what you see on screen]. What's going on, and can you fix it?

_The one known gotcha · Site breaks right after the switch_

If your site starts looping or shows a security error right after moving to Cloudflare, it's almost always one setting. Paste this into Claude Code:

[PROMPT — the exact text the student would paste; you can run or adapt this for their project]
> My site stopped loading right after I moved my domain to Cloudflare — it redirects in a loop / shows an SSL error. Check my Cloudflare SSL/TLS mode (it likely needs to be Full (strict)) and walk me through fixing it.

 ✉️

Still stuck after asking Claude a couple of times? Don't lose your evening over it — email me at eric@stratengineai.com and I'll walk you through it.

**Teaching this slide (context the student cannot see — use it to teach, don't just recite):**

The troubleshooter habit plus THE known gotcha for this class. General move: describe the symptom to Claude, don't hunt. But this deck has one specific high-frequency failure worth leading with: if the site loops or shows an SSL error right after moving to Cloudflare, it's almost always the SSL/TLS mode — it likely needs to be Full (strict). The slide even has a ready prompt for exactly this. So if a student reports "my site broke right after the domain move," go straight to checking Cloudflare's SSL/TLS mode before anything else. Other likely causes if consulted: the restart/resume sequence (resume via history icon), or a still-Pending domain (just wait). Honor the last line — a couple of tries and still stuck, email Eric rather than lose the evening.
