Built with agents.
This site was built by directing AI agents. No line of it was typed by hand. What follows is the part that matters: the decisions, and the places where the agent’s first answer was wrong and was sent back.
The repository is private, so this page is the public record. As of 2026-10-01.
What was asked for.
- 01 A SvelteKit site, every tool installed through asdf, pnpm for packages.
- 02 A unique design with motion. The agent proposed four directions; the timetable won.
- 03 Dark mode only.
- 04 Replace ex3.dev, keep its old addresses working, carry the one article over.
- 05 One format: 1:1 calls. A free 30-minute first call, then $50 an hour.
- 06 Remove every mention of a syllabus. Topics, taken in any order.
Where the first answer was wrong.
This is the judgment the training teaches, applied to this site. Each one is what the agent built first, what was said, and what it became.
The first exercise asked you to find a bug in ten lines of code an agent wrote.
Frontier models don’t make that kind of mistake. The section is a lie, and reading every line is a waste of time.
The exercise is now a chat with an agent that says the work is done. You choose a reply. Only one asks what was proved.
The fees section invented three packages, A, B and C, and hatched every cell as TBA.
Nothing is decided. Don’t guess at a count.
One hatched slot, then one price once it was decided. The section was later removed as redundant.
A module was called “Taking the keyboard back”, as if the answer to a stuck agent is to type the code yourself.
Writing code by hand is not something I will teach.
“Steering a stuck agent”: a sharper instruction, better context, a smaller step.
The opening screen had eight blocks and no order to read them in.
There is no visual hierarchy. Make it simpler but still eye-catching, with the call to action.
Three blocks, then three small signposts added back on request, with the action last on a phone.
The text under the signposts was set small and grey, at the bottom of each block.
That reads like fine print. It’s the answer, not a footnote.
Full-size text, directly under each title.
The hero’s Friday column could replay its entrance and sit blank for a moment.
A second agent, reviewing only the screenshots, caught it and refused to pass the page until it was fixed in the page rather than in the capture.
The entrance is set once, outside any breakpoint, so it never restarts.
The decisions on record.
Each one is written down in the repository as a decision record, with the alternatives considered. These are the short versions.
- ADR 0001
Sell 1:1 calls only, priced per call, with a free first call
A solo instructor cannot run cohorts and 1:1 work at once, and no demand had been tested. Start small.
- ADR 0002
No learners under 18
Enrolling minors needs consent, safeguarding and legal review that had not been done. The site does not state an age; Nabeel applies the rule on the first call.
- ADR 0003
No prerequisites
The free first call is where prior knowledge is gauged, so a beginner is never put into paid calls blind.
- ADR 0004
Teach judgment and steering, never writing code by hand
When an agent is stuck or wrong, the taught response is to redirect it, not to take over.
- ADR 0005
Booking a call is the primary action, with email beside it
A booked call is a firmer commitment than an email, and it is the free first call the offer is built on.
- ADR 0006
Judge an agent’s work by its spec and tests, not line by line
Decide whether work is done from what the agent claims, what it tested and what it touched.
With what.
- Agent
- Claude Code, running Claude Fable 5.1
- Design review
- A second agent, given only the screenshots and the brief
- Stack
- SvelteKit, Svelte 5, TypeScript, static output
- Checks on every change
- svelte-check, ESLint, Prettier, a build, and screenshots at four widths
This is the work.
Deciding what to ask for, and whether what came back is right. If you want to learn to do it, the first call is free.
Book a free 30-minute call