background

Oaks Christian School

AI Class

Course materials, guides, and assignments for AI Class at Oaks Christian School. Every page is its own experiment — a new theme, a new layout, a new idea about what a page can do. That's deliberate.

Start at the beginning
  1. 01 Assignment 01 — Get Yourself Online A list of things to figure out. Nothing here tells you how.

    By next week you can take a change from idea to live on the internet without looking anything up.

    Below is the list. Nothing here explains how — finding out is the assignment. Use AI, videos, docs, each other. There’s no cheating on the how. You’re judged on whether it works, whether you can explain it, and how you got yourself unstuck.

    Each row has two halves. The left is the thing to make work. The right is the thing to understand — if you can’t answer it, you haven’t finished the row, no matter what’s on your screen.

    On paper: assignment-01.pdf

    The list

    Accounts

    Figure outUnderstand it when you can answer
    Get a GitHub account, with your real name and a photo on the profileWhy a stranger reading your profile is the point of it
    Apply for the GitHub Student PackWhat it gives you that you’d otherwise pay for
    Launch a Codespace, use its terminal, and stop it when you’re doneWhat a Codespace actually is, and what’s still running after you close the tab
    Find the core-hours meterWhy a 2-core machine burns your quota twice as fast as clock time

    The Git loop

    Figure outUnderstand it when you can answer
    Make a repo, and get it open in a CodespaceThe difference between Git and GitHub
    Make a branchWhy you don’t just edit main
    Commit a changeWhy a commit is not a save, and what a good message says
    Push itWhy committing ten times and pushing once is normal
    Open a pull request, and merge itWhat a PR is for if you could just merge it yourself
    Pull the merged change back downWhere your copy and GitHub’s copy disagree, and what happens if you ignore it

    Run that loop start to finish, twice, without notes. That’s the bar.

    Live on the internet

    Figure outUnderstand it when you can answer
    Get something — anything, a heading will do — live at a public URLWhy pushing isn’t deploying
    Find out what happens to your URL when you push againWhat “deploy” means in the thing you chose
    Work out what the three layers of a web page areWhich layer a visitor can read, and how you know
    Write a .gitignore, working, before your first pushWhat it does and does not protect you from

    Secrets

    Everything you commit is permanent, and on a public repo it’s instantly public. Bots scrape new commits within seconds of a push. API keys, tokens, passwords, .env files: never.

    Figure outUnderstand it when you can answer
    Where a secret key is safe to live, and where it isn’tWhy “it’s in the JavaScript” means “it’s public”
    What you’re supposed to do if you commit a key by accidentWhy the answer is not “delete it in the next commit”

    Hand in

    1Your GitHub profile
    2A pull request you opened and merged
    3Your live URL
    4What broke, and how you got unstuck

    done when All four handed in, and you can walk through the Git loop out loud with the screen off.

    What you’re actually graded on

    Three things, and only three:

    1EngagementMr. Smith’s call, from what he sees in the room. If you’re not participating, he’ll notice — that’s the whole mechanism
    2The blank paper quizTuesday, next week
    3The portfolioGraded when it’s finished, end of this month

    Everything above is how you get ready for those. Nothing on the list is worth marks on its own — it’s worth marks because you can’t do 2 or 3 without it.

    Limits worth knowing before you assume you’re stuck

    • GitHub Pages needs a public repo on the free plan. Other hosts don’t.
    • Your profile needs to look like a real person for the Student Pack. Nothing beyond that belongs in a repo — not your address, not your schedule, not your phone number.

    When you’re stuck

    That’s not the assignment going wrong. That’s the assignment.

    Before you ask a person: search the exact error text, read the real documentation, ask an AI to explain it three different ways until one lands, find a video. Note where the answer came from — hand-in 4 is that note.

    Build your own way in

    I need to learn X. Don’t explain it yet.

    Find me the three best resources — the official docs page, one video, one worked example. Tell me what order to use them in and what I should be able to do after each. Then quiz me on it and tell me what I still don’t have.

    The portfolio — due Friday 21 August

    The list comes first — there’s no point styling a page you can’t deploy yet. But the portfolio is due at the end of this week. What it has to do and how it’s marked →

    That live page becomes your portfolio, and you’ll add your work to it every unit. Nobody’s handing you a template — working out what makes a portfolio good, and what makes yours worth looking at, is the assignment.

    Which makes this the place to plan before you build. Every project this year starts the same way — Goal, Scaffold, Evaluate — and you write all three down before you make anything. Write it in a file in the repo, so it’s committed and you can hold yourself to it later.

    This isn’t paperwork. It’s the handoff. An AI will build whatever you ask, instantly, and has no idea what you actually want or when it’s finished — so these three, once you’ve got them aligned, are exactly what you hand it so it can go and work without you standing over it. Goal says what to build. Scaffold says in what order. Evaluate is the test it has to pass before either of you calls it done.

    Get all three right and you’re driving. Leave one vague and you’re just accepting whatever came out.

    plan your portfolio
    1. Goal

      what you are making, and why it is worth making

      Who is this for, and what do you want them to think after ten seconds on it? One sentence, specific. A portfolio for everyone is a portfolio for nobody, and “to show my work” isn’t a goal — every portfolio shows work. What’s yours for?

    2. Scaffold

      how you get there — the pieces, and the order

      The pieces, in the order you’ll build them, with what depends on what. What’s the smallest version that could be live today? What are you deliberately not building yet? If a step can’t be done in one sitting, it’s not a step yet — break it down until it is.

    3. Evaluate

      how we will know it is good

      How will you know it’s actually good — written down now, before you build, while you can still be honest about it. Not “it looks nice.” Something specific enough that someone else could check it for you and get the same answer you would. A plan with no standard in it can’t fail, and a thing that can’t fail can never be finished either — and an AI with no standard will cheerfully tell you it’s done.

    Do this before you write a line of it, or you’ll end up with whatever the AI defaulted to. That’s the point of the prompt below — same trick as the one further up, make it find you the map instead of walking it for you.

    Plan the portfolio before you build it

    I’m building a portfolio site that I’ll add school and personal projects to all year. Don’t build it, and don’t give me code or a template yet.

    First: find me four or five real portfolios worth stealing ideas from — a mix of students, designers, and developers — and for each one tell me what it does well and what it does badly.

    Then ask me the questions you’d need answered to plan mine: who’s meant to read it, what it’s for, what I actually want out of it. One at a time, and don’t move on until my answer is specific.

    Then help me write three things down, and push back where I’m being vague: GOAL — who it’s for and what they should think after ten seconds SCAFFOLD — the pieces in build order, what depends on what, what I’m not building yet EVALUATE — how we’ll tell whether the finished thing is any good

    Tell me which parts you’re least sure about and why.

    Then, and only then, hand it over and let it work:

    Hand it the plan and let it run

    Here is my plan. Goal, Scaffold, Evaluate:

    [paste your three]

    Before you build anything: tell me where this plan is ambiguous, and where two people could read it differently. Ask me about anything you’d otherwise have to guess. I’d rather answer five questions now than get the wrong thing.

    Once it’s clear, work through the scaffold in order and build it. Then — separately, and strictly against my Evaluate section, not against your own taste — go back over what you built and tell me where it falls short of the standard I wrote. Be hard on it.

    If it built the wrong thing, that’s information: your plan let it. Fix the plan, not just the page.

    done when It’s live, something of yours is on it, and you can say why it looks the way it does — and “because the AI made it that way” isn’t a reason.

    Extra — get an agent in your terminal

    Only if you already have a paid Claude or ChatGPT plan — both agents need one, and neither free tier includes them.

    Get it running inside your Codespace, not on your laptop. Things to look up, in order:

    • The official install command for Claude Code, or for the Codex CLI
    • How to authenticate it from inside a container. This is the awkward part. The first link you’re offered won’t work, and working out why is the exercise
    • How to get it to read your whole project before you ask it for anything
    • How to stop your login vanishing every time you create a new Codespace

    done when It has explained your own repo back to you in plain English, and you’ve had it change something that you then reviewed line by line.

    Open as its own page ↗
  2. 02 Codex in Your Terminal Install the ChatGPT Codex CLI and get it working on your own machine. Two paths — Mac and Windows. ~40 min

    Codex is OpenAI’s coding agent that runs in your terminal, in your actual project folder, on your actual files. Not a chat window you copy out of — it reads the repo, writes to it, runs commands, and you approve or reject what it does.

    This page is unusual for this class: it tells you the how. Not because the how matters, but because a broken install is a bad place to practice figuring things out. Getting it running is twenty minutes. What you do with it afterwards is the rest of the year.

    Before you start

    Know which machine you’re setting up, and stop if the answer is “the school one.”

    MacFollow the Mac path. You’ll install Apple’s command line tools first, for Git.
    Windows 10 (build 19041+) or 11Follow the Windows path. You’ll install WSL first — that’s most of the work.
    Chromebook / school-managed laptopYou probably can’t install this. Use a Codespace instead — see the bottom of the page.

    Codex itself has almost no prerequisites. It’s a single compiled program — no Node, no Python, no npm install, no admin password. The installer needs curl and tar, which both systems already have.

    What you do need is Git and a copy of your repo on the machine, and that’s the part people get stuck on. Assignment 01 lived in a Codespace, so your code is on GitHub, not on your laptop. Codex reads the folder you launch it in — point it at an empty one and it has nothing to work with. Both paths below clone the repo first, deliberately.


    Mac

    Codex installed, signed in, and answering questions about your own repo.

    1. Open Terminal (⌘ Space, type “terminal”, Enter).

    2. Install Apple’s command line tools — this is what gives you git:

      xcode-select --install

      A dialog box appears; click Install and wait. If it says the tools are already installed, good, move on.

    3. Confirm Git works:

      git --version

      A version number means you’re set. A popup asking to install developer tools means step 2 didn’t finish.

    4. Install Codex:

      curl -fsSL https://chatgpt.com/codex/install.sh | sh

      No sudo, and it won’t ask for your password — it installs to ~/.local/bin inside your own home folder. If you already use Homebrew, brew install --cask codex does the same job.

    5. Read the last two lines the installer printed. They tell you exactly what to do next — either codex works right now, or it says PATH was added to a file and you need a fresh terminal. If in doubt, close the window and open a new one: the installer put codex in ~/.local/bin and added that folder to your PATH, and a shell that was already running never sees that change.

    6. Check it’s really there:

      codex --version

      A version number means installed. command not found means step 5 — or the PATH problem below.

    7. Get your repo onto the machine and move into it:

      cd ~
      git clone https://github.com/YOUR-NAME/YOUR-REPO.git
      cd YOUR-REPO
    8. Launch it:

      codex
    9. Pick Sign in with ChatGPT. A browser tab opens, you log in, it hands the session back to the terminal. Same ChatGPT account as your plan.

    10. Ask it something about the code that’s in front of it:

      Read this repo and explain what it does, file by file. Don't change anything.
    what that curl command actually does, and why you should be suspicious of it

    curl -fsSL <url> | sh means: download a script and immediately run it, without reading it. That is a real risk, and the instinct to distrust it is correct — it is exactly how people get compromised.

    What makes this one OK is where it comes from: chatgpt.com is OpenAI’s own domain, over HTTPS, and it’s the command printed in their own documentation. The trust isn’t in the syntax, it’s in the hostname. Change the hostname and the same command is an attack.

    Want to see it first? Drop the pipe and read it:

    curl -fsSL https://chatgpt.com/codex/install.sh | less

    It’s worth actually skimming. You’ll see it check for curl, tar and a checksum tool, verify what it downloaded against a published hash, unpack into ~/.codex/, symlink a codex command into ~/.local/bin, and append an export PATH=... line to your shell profile. Nothing hidden, nothing needing root. That’s what a trustworthy installer looks like — which is exactly why you should look before running one.


    Windows

    WSL2 installed, then Codex inside it — signed in and reading your repo.

    OpenAI’s supported setup on Windows is through WSL2, and that’s what you should use. WSL is a real Linux system running inside Windows: same terminal, same commands, same everything as the Mac instructions above, on the machine you already own.

    You need Windows 11, or Windows 10 build 19041 or newer. Winver in the Start menu tells you. The good news is the Ubuntu that WSL installs already includes Git and curl, so there’s no equivalent of the Mac’s command-line-tools step.

    1. Open PowerShell as Administrator — Start menu, type “powershell”, right-click, Run as administrator.

    2. Install WSL with Ubuntu:

      wsl --install

      Two things that go wrong here. If it prints a wall of help text instead of installing, WSL is already on the machine — run wsl --install -d Ubuntu instead. If the download hangs at 0.0%, run wsl --install --web-download -d Ubuntu.

    3. Restart your computer. Not optional, and not “later.”

    4. After the reboot, Ubuntu opens on its own and asks you to create a username and password. This is a Linux account, separate from your Windows login. The password is invisible as you type it — no dots, no stars. That’s normal, keep typing.

    5. From now on, everything happens in the Ubuntu terminal, not PowerShell. Find it in the Start menu as “Ubuntu”, or open Windows Terminal and pick Ubuntu from the tab dropdown.

    6. Update the fresh system once. It’ll ask for the Linux password you just made:

      sudo apt update && sudo apt upgrade -y
    7. Install Codex — the same command Mac users run, because you’re on Linux now. No sudo this time:

      curl -fsSL https://chatgpt.com/codex/install.sh | sh
    8. Close the Ubuntu window, open a new one, and check:

      codex --version
    9. Get your project into WSL. Clone it fresh inside Linux — don’t reach across to your Windows C: drive:

      cd ~
      git clone https://github.com/YOUR-NAME/YOUR-REPO.git
      cd YOUR-REPO
      codex
    10. Pick Sign in with ChatGPT. A browser opens on the Windows side and hands the session back to the Ubuntu terminal.

    why cloning into Linux beats opening /mnt/c/Users/you/...

    WSL can see your Windows drive at /mnt/c/, so working there looks like it should be fine. It isn’t. Files on /mnt/c cross a translation layer on every read and write — file operations are dramatically slower, file-watching breaks, and Windows and Linux disagree about line endings and file permissions in ways that produce Git diffs where you changed nothing.

    Keep Linux work in the Linux filesystem (~/, which is /home/yourname). Your repo lives on GitHub anyway — cloning it twice costs you nothing, and that’s the whole argument for Git.


    If that didn’t work — the other routes

    There is no single correct installer. There are four, they all end with the same program on your machine, and if one is blocked or broken you switch. Try them in this order.

    MacWindows
    1. Official installercurl -fsSL https://chatgpt.com/codex/install.sh | shSame command, inside WSL
    2. Package managerbrew install --cask codexnpm install -g @openai/codex (needs Node)
    3. npmnpm install -g @openai/codex (needs Node)
    4. Native Windowspowershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
    5. Manual binaryDownload from GitHub Releases, unpack, rename to codex, put it somewhere on your PATHSame
    do you need npm first? No — and here's why it looks like you would

    Reasonable question, because npm install -g is how you install most command-line tools these days. Not this one.

    npm install -g @openai/codex genuinely works — but the package is a 12KB wrapper. The real program is a compiled binary that npm pulls in as a platform-specific dependency, and it’s byte for byte the same binary the curl installer downloads. npm isn’t building anything or adding anything; it’s just a delivery van.

    Which means installing Node and npm first doesn’t help the official installer at all — that one doesn’t use Node, doesn’t look for it, and doesn’t care whether it’s there. For a machine that doesn’t already have Node, going the npm route means installing an entire JavaScript runtime in order to download one file. That’s the only reason it’s not the headline instruction.

    Use npm if you already have Node and you’d rather manage versions the way you manage your other global tools. It’s a completely legitimate choice, just not a shortcut.

    Use the installer if you’re starting from a clean machine — which is most of you.


    School network

    Know whether the network is the problem before you blame the instructions.

    This is a real possibility and worth checking first, because a filtered network produces errors that look like broken instructions. Codex needs to reach:

    HostFor
    chatgpt.comthe installer script, and the agent’s traffic
    releases.openai.comthe download (it falls back to github.com if that’s blocked)
    auth.openai.comsigning in
    api.openai.comthe model itself
    github.comcloning your repo

    Test it in ten seconds, before installing anything:

    curl -I https://chatgpt.com
    curl -I https://auth.openai.com

    Any response at all — even 403 or 404 — means you got through; that’s the server talking. No response, a timeout, or a certificate error means the network stopped you. After installing, codex doctor checks the same ground and reports it in English.

    The workaround is a Codespace, and it’s a genuinely interesting one. In a Codespace the agent isn’t running on the school network at all — it runs in Microsoft’s data centre, and that machine talks to OpenAI. The only thing crossing the school firewall is your browser talking to github.com. If GitHub is allowed and ChatGPT isn’t, that gap is the whole reason to work there. Which is also the answer to “why do we use Codespaces in this class” — see the bottom of this page.

    Failing that: install it at home, or on a phone hotspot. Once it’s installed and signed in, it still needs network to run — the model isn’t on your laptop.


    Both: is it actually working?

    Not “did it install.” Working.

    Codex ships with a self-check. Run it from inside your repo:

    codex doctor

    It reports on your install, whether it can find Git, whether you’re authenticated, and whether it can reach the network — with a , or on each. Read the failures; they’re written in plain English and they tell you which of the steps above didn’t take.

    Then the part doctor can’t check for you:

    1. codex launches and shows you a prompt, in a folder that contains a real project.

    2. codex login status says you’re signed in with ChatGPT — not with an API key.

    3. It has read your repo and explained it back to you, and the explanation was right. You are the one who can check that, which is the point.

    4. It has made one change you asked for, and you read the diff line by line before accepting it.

    Later on, codex update pulls down new versions — worth knowing, because this tool changes fast enough that a guide written today will be slightly wrong by the time you read it. Including this one.

    When it breaks

    Run codex doctor first — it names most of these for you.

    What you seeWhat’s actually wrong
    codex: command not foundYou’re in the shell that was open before you installed. Open a new terminal. If it persists, ~/.local/bin isn’t on your PATH — that’s the thing to go read about.
    git: command not found, or a developer-tools popup (Mac)Step 2 of the Mac path. Codex works without Git, but it works far better with it, and you can’t clone a repo without it.
    It bills your API key instead of your planAn OPENAI_API_KEY environment variable is set, and Codex prefers it over your ChatGPT login. Unset it, or codex logout and sign in again.
    Browser opens, login never comes backYou’re in a container or a remote machine and the callback can’t reach you. See the Codespaces note below — same trap as Assignment 01.
    Confidently wrong answers about your codeIt only knows what it has read. Tell it what to read first.
    wsl --install does nothing (Windows)Virtualization is off in your BIOS, or you weren’t running PowerShell as Administrator.
    The installer times out, or a certificate errorThe network, not the command. See School network above.
    git clone asks for a username and passwordCloning a public repo needs neither — so either the URL is wrong, or the repo is private and you need a token. GitHub stopped accepting account passwords here years ago; typing yours will fail no matter how right it is.
    Author identity unknown when something commitsFresh machine, so Git doesn’t know who you are yet: git config --global user.name and user.email.
    Make it debug its own install

    I’m setting up the OpenAI Codex CLI on [Mac / Windows 11 with WSL2]. Here is exactly what I ran and exactly what came back:

    [paste the command and the full error text, not a summary of it]

    Don’t give me a list of five things to try. Tell me what this specific error means, what the most likely single cause is, how I can confirm that’s the cause before changing anything, and then the fix. If you’re guessing, say you’re guessing.

    Understand it when you can answer

    Installing something is not knowledge. These are.

    The thingThe question
    The agent runs locallyWhat is Codex reading, and what is it sending to OpenAI?
    WSLWhat is it, and why isn’t it the same as a virtual machine or a dual boot?
    PATHWhy does a brand-new terminal find codex when the old one couldn’t?
    Approval promptsWhat could a coding agent do to your machine if you approved everything without looking?
    Plan vs API keyWhy is one a flat monthly fee and the other a number that can keep going up?
    .gitignore and ~/.codex/Your credentials are in a file on your disk. Which files must never reach a commit?
    Why doesn't the terminal find `codex` right after the installer says it succeeded? reveal

    PATH is the list of folders your shell searches for commands, and it’s read when the shell starts. The installer added a folder to that list — but your already-running shell is still using the copy it loaded on launch. A new terminal reads the new list.

    Codex just told you a function does X. How do you know it's true? reveal

    You read the function. The agent is fast and confident and sometimes wrong, and confidence isn’t evidence. This is the same job as the Evaluate slot in a plan: you supply the standard, because the tool can’t.

    What's the difference between this and pasting your code into chatgpt.com? reveal

    Access and scope. Codex reads whole files across the project without you choosing them, and it can edit and run things. That’s more useful and more dangerous — which is why it asks first.

    done when Codex is installed on your own machine, signed in with your plan, and it has explained your repo back to you correctly — and you rejected at least one thing it wanted to do, on purpose, because you read it.

    On a Codespace instead

    No paid plan, or a locked-down laptop? A Codespace is Linux, so the Mac commands work as-is — run the curl installer in the Codespace terminal.

    The sign-in is where it gets interesting, and it’s the same trap as the Assignment 01 extra: the normal login hands credentials back to a browser on localhost, and localhost inside a container is not your laptop. So the link you’re given goes nowhere.

    There are two ways out. One is to forward the port so the container’s localhost reaches your browser. The other is a flag on codex login built for exactly this situation — machines with no browser of their own. codex login --help lists it. Which one you use is up to you; working out why the default fails is the part worth having.

    The other thing to know: a new Codespace is a new machine, so your login is gone again. Figuring out where credentials live and how to stop re-doing this is the follow-up.

    What this is for

    The tool isn’t the point. Being able to hand work to something that will do it without you watching is the point, and that only works if you can say what you want and tell whether you got it.

    Which is the same three boxes as always — Goal, Scaffold, Evaluate. A terminal agent makes the cost of skipping them obvious and immediate: vague goal, and it builds the wrong thing in four seconds instead of four days. No Evaluate, and it announces it’s finished and you have nothing to argue with.

    Point it at your own repo properly

    Read this entire repository before answering anything.

    Then tell me, in plain English: what this project is, how it’s structured, and the three things about it that would most confuse someone seeing it for the first time.

    Then — don’t fix them — tell me what you’d change and why, and which of your suggestions you’re least confident about.

    Open as its own page ↗
  3. 03 Agenda for 08/19 Three dates: the portfolio Friday, the book Monday, the quiz the week after.

    WhatWhen
    Portfolio site live at a public URLFriday 21 August
    Own a copy of the bookAI Engineering, Chip HuyenMonday 24 August
    Quiz — chapter 1Friday 4 September

    1. The portfolio — due Friday 21 August

    You hand in a URL, submitted via AXIS. Have fun with the design.

    Full details on this project →

    You have agents installed — use them

    This assumes Claude Code or Codex is working on your machine. If it isn’t, that’s Assignment 02, and it comes first.

    Hand it a plan, not a vibe

    Here’s my plan for my portfolio site.

    GOAL: [one sentence — who it’s for and what they should think] SCAFFOLD: [the pieces, in build order] EVALUATE: [how we’ll both know it’s finished]

    plan your portfolio
    1. Goal

      what you are making, and why it is worth making

      Who is this for, and what do you want them to think after ten seconds? One sentence, specific. “To show my work” isn’t a goal — every portfolio shows work. What’s yours for?

    2. Scaffold

      how you get there — the pieces, and the order

      The pieces, in the order you’ll build them. What’s the smallest version that could be live today? What are you deliberately not building this week?

    3. Evaluate

      how we will know it is good

      Make it objective enough to fail. An AI will tell you it’s good and mean nothing by it — a measurable standard is the only thing it can’t talk its way past. Write one for each domain you care about: design is a different test from code.

    2. The book — buy it by Monday 24 August

    AI Engineering — Chip Huyen.

    done when You have your own paper copy with you on Monday.

    3. The quiz — Friday 4 September

    Chapter 1 only. Closed book.

    What does it mean to know a chapter, for this quiz? reveal

    You can explain each main idea in your own words, unprompted, with nothing in front of you.

    What gets handed in

    Open as its own page ↗
  4. 04 The Portfolio The full brief. What it has to do, and the decisions you have to make yourself. due Fri 21 Aug

    Due Friday 21 August, submitted via AXIS. You hand in a URL — not a repo, not a screenshot, not a zip.

    What it has to do

    Make it workUnderstand it when you can answer
    The link opens on a school computer, a phone, and a machine you’ve never logged intoWhy “it works on my laptop” and “it’s live” are different claims
    It says who you are, in your own wordsWhat a stranger knows about you after ten seconds
    It shows at least one project, and what you were trying to doWhy the write-up around a project is worth more than the project
    The design is a decision you made and can defendWhat you chose not to do, and why

    done when You paste the link into a browser on a computer that is not yours, in a window that is not logged into anything, and your site loads.

    The decisions

    Nothing below has one right answer. Research your options, pick one, and be able to say why you picked it.

    Figure outUnderstand it when you can answer
    Where the site is going to liveHow a website is actually hosted, and what the services on offer differ on
    What you’re building it withWhat the “stack” is — frontend, middle, backend — and which parts yours even has
    Whether it’s safe to put on the internetWhat of yours is visible to anyone who views the page, and what should never be in it
    How to set the job up before you startWhat an agent needs from you up front to get it right the first time instead of the fifth
    why you're being asked to choose rather than told what to use

    Every one of these has a default that works. The reason you’re picking is that a year from now the defaults will have changed and the question won’t have. Being handed a stack teaches you that stack; choosing one teaches you how to choose.

    On the writing

    The words are the assignment as much as the layout. “Hi I’m a student who likes coding” tells a reader nothing. Say what you’re actually into, what you’ve built, what you got wrong and fixed.

    why the language carries so much of the mark

    Everyone in the room has the same agents, so everyone can produce a page that looks fine. What an agent cannot do is know what you think, what you’ve done, or what you want. The generic-sounding portfolio is the one that got typed by something with no information about you — and it reads that way immediately.

    Get it to build, without letting it write you

    Build the smallest version of my portfolio site that satisfies the plan below and gets deployed to a public URL.

    GOAL: [paste yours] SCAFFOLD: [paste yours] EVALUATE: [paste yours]

    Ask me anything you need before you start. Leave every sentence about me as TODO — I’m writing those myself.

    Your site is live and looks good. How do you know it's finished? reveal

    Because you wrote the standard down before you started and it passes. If the only answer is “it looks done,” you skipped Evaluate — and so did the agent.

    Open as its own page ↗

How this class works

AI can build almost anything you ask it to. It cannot decide what's worth building, and it can't tell you when the result is actually good. That part is yours. This class is mostly practice at the second thing.

Which means: how you learn any of this is up to you. Read the guide top to bottom, or ask an AI to explain it in the terms you already understand, or have it find you a video, or make it quiz you until it sticks. Nobody is grading your method. The pages here are a starting point, not the only door in.