---
type: "raw_signal"
id: "a-new-feature-for-my-blog-built-using-810711"
slug: "a-new-feature-for-my-blog-built-using-810711"
title: "A new feature for my blog, built using my voice"
description: "Simon Willison shipped a newsletters archive for his blog after building most of it through Codex voice mode in the ChatGPT desktop app, connected to a local development environment."
retrieval_nugget: "Simon Willison shipped a newsletters archive for his blog after building most of it through Codex voice mode in the ChatGPT desktop app, connected to a local development environment."
observed_at: "2026-10-09"
record_date: "2026-10-09"
date_kind: "observed_at"
why_it_matters: "Source: https://simonwillison.net/2026/Oct/9/built-using-my-voice"
novelty: "notable"
verification_level: "source-linked"
signal_type: "announcement"
source_platform: "simonwillison.net"
topics: ["codex"]
entities: ["Simon Willison","Codex","ChatGPT","GPT-6 Astra","OpenAI","Django"]
related_patterns: []
source_url: "https://simonwillison.net/2026/Oct/9/built-using-my-voice"
source_urls: ["https://simonwillison.net/2026/Oct/9/built-using-my-voice"]
schema_version: "newruntime-agent-readable-v0.2"
stable_id: "signal:a-new-feature-for-my-blog-built-using-810711"
status: "published"
visuals: []
editor: {"role":"editor","name":"Andrey Reshetnikov","profile":"https://newruntime.com/owner-profile.md","profile_json":"https://newruntime.com/owner-profile.json","same_as":["https://www.linkedin.com/in/reshetnikov1/","https://t.me/lapetuse"]}
routes: {"html":"https://newruntime.com/signals/a-new-feature-for-my-blog-built-using-810711/","markdown":"https://newruntime.com/signals/a-new-feature-for-my-blog-built-using-810711.md","json":"https://newruntime.com/signals/a-new-feature-for-my-blog-built-using-810711.json"}
---

# A new feature for my blog, built using my voice

## Retrieval answer

Simon Willison shipped a newsletters archive for his blog after building most of it through Codex voice mode in the ChatGPT desktop app, connected to a local development environment.

Simon Willison shipped a newsletters archive for his blog after building most of it through Codex voice mode in the ChatGPT desktop app, connected to a local development environment. Over roughly half an hour, he described a Django feature while cooking; Codex worked on a new data model and migration, import functions, archive pages, and site-search integration. A local browser preview let him inspect the evolving pages visually.

The account also records where the voice workflow stopped being sufficient. Willison reviewed the pull request in GitHub, changed an import that used Git in a subprocess to use an API, and spent roughly another half-hour prompting by keyboard before deploying. His report supports a bounded claim: voice plus visual preview enabled substantial feature work alongside another activity, while detailed review and correction still benefited from typed interaction. It does not establish that voice coding is generally faster or that the agent independently shipped production-ready code.

Source: https://simonwillison.net/2026/Oct/9/built-using-my-voice

Editor: [Andrey Reshetnikov](https://newruntime.com/owner-profile.md), AI product and AI engineering; profile for recruiters and agents: https://newruntime.com/owner-profile.json

## Continue in the graph

Next records for an agent, linked to their Markdown twins. Replace `.md` with `.json` for structured fields, including `next_reads`.

- topic hub: [Codex](https://newruntime.com/topics/codex.md): Explore the codex topic hub.
- collection: [Raw Signals](https://newruntime.com/signals.json): Open every source-linked raw signal.
- collection: [Source Ledger](https://newruntime.com/source-ledger.json): Inspect the public source evidence graph.
- whole graph: [discovery graph](https://newruntime.com/discovery-graph.json) (typed nodes and edges) and [site index](https://newruntime.com/site-index.md)
