How I built the new Critical Business School site with Claude
One week, one conversation, and a site that brings the school, the writing, the podcast and the library together. A list of everything that went into it.
Over the last couple of years, I have been writing on Substack at least once a week, sometimes more. Recently, I realized I visited the site less and less, which signaled it was time for a change. The site doubled its subscribers, but engagement stayed the same, online and in conversations. Last week, I moved Critical Business School, the Being in Space newsletter, the podcast, the events calendar, the library, and the Creative Surplus prompts from five separate places onto one site. I built it by connecting Claude to Ghost's API.
This post is for anyone who publishes, makes websites, or is curious about how sites get built now. It covers how the work flowed, how the site is organized (and why), and what changed.
Why move everything
The writing, the school, the events, and the library were always one practice, but they lived on Substack, a separate school site, an events page on Netlify, a meetups page on Vercel, and creative-surplus.com. Putting everything on one site means better connectivity between different sections.
How the work flowed
The process felt less like programming and more like working with an assistant.
- I described what I wanted in plain language. "Put search in the header." "The library page needs a visit button, not an About section."
- Claude made the change and checked it. It edited the theme, uploaded it to Ghost, loaded the live page, and confirmed the result before reporting back.
- I looked and reacted. Often with a screenshot and one line: the padding is off, this caption says the wrong thing, this sentence sounds like a slogan.
- The loop repeated, sometimes a dozen times for one page, until it was right.
I never opened a code editor, which for someone used to playing with line heights in CSS felt incredibly liberating.
The information architecture
The structure follows how people actually arrive. Most come through a single essay or event, not the homepage, so every section links to the others, and each has its own short sub-menu instead of one long navigation bar.
- Program: what CBS is, why it exists, who leads it, and how to join.
- Events: the calendar, with the live Luma feed and an archive of past events, and meetups, with a sign-up list.
- Writing: all writing with topics and search, and four series: AI Literacy, Creative Surplus, How to Find, and the podcast.
- Library: the reading room at Index, the visual library, and the Creative Surplus prompts.
- Teams: AI Literacy workshops for organizations.
- Underneath: search in the header of every page, memberships and paid tiers, an RSS and podcast feed, and redirects from every old address.
A short tour
The site follows your device's light or dark setting, so the screenshots alternate between the two. Each one links to the live page.
Homepage
The program in one paragraph, then the How to Find series and featured writing.

Writing
The four series and the topic list sit above the full archive, and the search in the header filters it as you type.

A series page
The AI Literacy page is both a course page and a reading list: the facts and the sign-up button come first, followed by the writing the course grew out of.


A single post

Events

Library
The reading room is a real shelf at Index with a live catalog. The visual library gathers images from Tumblr, Are.na, Dropbox and butwhatdoesitmean.com every half hour.


Teams

The logic behind the setup
A few early choices made everything else easier.
- Ghost as the base: It runs the site, the newsletter, memberships, and payments in one place. It is open source, and you can change almost everything through an API. That last point matters most: anything with an API is something an AI model can work on directly.
- A custom theme: once writing code stopped being the slow part, there was no reason to settle for a generic design. Every page is shaped around how the school actually works.
- Connecting APIs: Luma still runs events, Stripe still runs payments, and Tumblr and Are.na still hold the images. The site pulls from them, so we didn't have to rebuild anything.
- Move readers, not just pages. Paid subscribers carried over through their existing Stripe records, the podcast feed was redirected so Apple followed automatically, and every old being-in.space link lands on the right post. Nobody had to do anything to keep reading.
Specific decisions need a person
The model was fast and capable, and the project still only worked because of my specific guidance in specific points.
- Decisions and taste. What the sections are, what the copy says, and what to cut.
- Money, passwords, and domains. Claude was not allowed to change DNS settings, so it wrote out the exact steps, and I made the change myself.
- Checking. One update briefly took the Meetups page offline. Claude caught it on the next check and fixed it within minutes, which is why checking after every change is part of the process.
What changed
The practical difference is that the site can now keep up with the school and my practice. I am energized to visit it and add to it. As CBS develops into 2027, the site can keep pace.
If you publish or build for the web
None of this is specific to a school. If your newsletter is on one platform, your portfolio on another, and your events somewhere else, the same approach applies: choose a base with a good API, keep the tools that work, connect them, and spend your time on structure and words rather than code. AI Literacy is about knowing what these tools do well, where they fail, and what stays your responsibility. This build was a week of practicing all three.
- Learn to work this way: the AI Literacy cohort has six people, meets weekly, and works on their own projects. See the course.
- Bring it to your team: AI Literacy for Teams.
- Rethink your own site: if you want help planning or building something like this for your practice, get in touch
- For one-off events and masterclasses, you can follow on Luma

