A new feature for my blog, built using my voice
Simon Willison shipped a /newsletters/ page for his Django blog, built almost entirely by voice using the ChatGPT desktop app's Codex voice mode (GPT-6 Astra High) against a local dev environment while cooking dinner (~30 minutes of conversation, plus ~30 minutes of typed follow-up).
- What was built: a new Django model + migration and admin config; four import scripts (recent Substack items via RSS, full Substack archive via its undocumented paginated API, public monthly newsletters from a GitHub repo, and the latest private sponsors-only newsletter); public
/newsletters/and per-year archive pages; integration with day/month archive pages (but not tag pages or homepage) and the site search engine. - Workflow: started with a typed "Start dev server and open in browser" for live visual previews, then switched to voice chat; the model asked clarifying questions and iterated. UI design came from the model with voice-based feedback.
- Review process: Codex opened a PR; during review Willison replaced a subprocess-based Git import with a GitHub API-based one (needed for private repo access) and made display tweaks before landing and deploying.
- Limitations: voice worked for feature-level iteration but typing remained necessary for details (pasting errors, examples, pointing at code); private-repo credential setup required keyboard time. He sees it as a multi-tasking tool rather than a daily driver.