I directed this site from the brief to the last word. An AI wrote the code under my direction, and nothing went up until I approved it. It is the same split I use at work, which I wrote about in Why a person checks every change before it ships.
The reader came first
This site has a first reader, the professor who grades it, so the brief began with her assignment and one question: how do I make it easy to see who I am and why I’m worth hiring, and to find every required piece without hunting? A final audit against her assignment caught her rule that a page counts only if it has text and images. About, the blog and Contact had no image, so About and Contact got my photographs and each blog post got a drawn map of the system it describes.
Research before design
Before any page was designed, I had the AI search for the best pages of that kind anywhere: award winners, design galleries and designers’ own lists of the personal sites they admire. Each one was captured in a real browser. For the About, Blog and Contact pages alone, the searches covered more than 250 sites. Three AI judges then scored the finalists with letters in place of names, which I wrote about in How I get honest feedback on my own work.
The search also showed what other sites leave out. Of the 180 personal sites pooled for the Contact page, only 68 had a contact page or section. Sixty had no way to reach the person beyond social icons, and 45 offered only an email link. So the Contact page here leads with my email and has a form under it.
Every word traced and approved
Every sentence on this site lives in two files: a copy deck for the pages and one file for the blog. Each line in the deck has a number, a source, and the date I approved it. When a page is built, a script reads the lines it needs and places them. No page I have rebuilt has a line typed into it by hand.
That rule exists because a model will write a plausible paragraph about me faster than I can read it, and some of it will be wrong. When it drafted my About page, it wrote “On weekends I’m usually at a friend’s pool, trying a new place to eat, or out at an event at night.” I sent it back: don’t say on the weekends, say whenever my time frees up. So the AI asks me questions, I answer in my own words, and the lines it writes from my answers come back to me as a numbered table to approve, cut or reword. Since I restarted the site on October 15, the copy has been through more than seventy of those rounds.
A builder I tested first
The pages are plain HTML, CSS and JavaScript, generated by Python scripts. The build follows a website builder I made in September as a Claude Code skill. It runs in eighteen phases, from an intake interview to the launch, and no phase starts until the one before it passes its checks. I tested it before using it here. I had the same model build three sites with the skill and three without, and judges compared each pair blind, in both orders. After my second round of changes, the skill’s builds won all three pairs.
Some of the checks are numbers. On Lighthouse, Google’s open-source audit, run as if on a phone, the Home, Student, About, Blog and Contact pages score between 97 and 99 for performance. Portfolio is the exception at 88, held back by the size of its own page. Every page has to pass an accessibility scan, work with the keyboard alone, fit a screen 320 pixels wide, and keep every link and button at least 24 by 24 pixels, the minimum the web accessibility guidelines set. A page that fails a check doesn’t reach me until it’s fixed.
The final say
After a page is built, fresh AI reviewers look at it with no memory of the build: one for the design, one for the code, and one who walks it as a visitor would. Fixes to the craft go in directly. Anything that touches the words comes back to me as a question.
Then the page comes to me, and every page I approved was turned down at least once first. Of the first Portfolio I said, “This looks super confusing.” Of the Student page, “This looks very elementary and sloppy.” Of the About page, “Okay that looks horrible.” That About page was restarted from a fresh search, and the rebuild came first with all three judges against the six finalists from its search.
Sources
Next post How I get honest feedback on my own work All posts