SQL functions in Google Sheets to fetch data from Datasette
Learn how to fetch data from Datasette into Google Sheets using importdata(), named functions, and Google Apps Script.
SimonWillison.net is the long-running blog of Simon Willison, a software engineer, open-source creator, and co-author of the original Django framework. He writes about Python, Django, Datasette, AI tooling, prompt engineering, search, databases, APIs, data journalism, and practical software architecture. The blog includes detailed notes from experiments, conference talks, and real projects. Readers will find clear explanations of topics such as LLM workflows, SQL patterns, data publishing, scraping, deployment, caching, and modern developer tooling. Simon also publishes frequent micro-posts and TIL entries that document small discoveries and tricks from day-to-day engineering work. The tone is practical and research oriented, making the site a valuable resource for anyone interested in serious engineering and open data.
287 articles from this blog
Learn how to fetch data from Datasette into Google Sheets using importdata(), named functions, and Google Apps Script.
Upgraded Claude Token Counter with model comparison, showing token inflation in Opus 4.7 vs 4.6.
Explores the rise of headless services for personal AI agents, with APIs replacing GUIs for better user experience.
Analysis of system prompt changes between Claude Opus 4.6 and 4.7, highlighting new tools, safety updates, and behavioral improvements.
Transforming Anthropic's Claude system prompts into a git timeline for exploring prompt evolution via commit history.
Simon Willison updates his blog-to-newsletter tool to include a new 'beats' content type using a single-shot AI prompt.
Announcing PyCon US 2026 in Long Beach with new AI and security tracks, plus community highlights.
An interactive deconstruction of the 1985 Turbo Pascal 3.02A binary, using AI to decompile and annotate the classic compiler's assembly code.
Kimi.ai congratulates Cursor AI on Composer 2 launch, built on the Kimi-k2.5 model via a commercial partnership.
Analysis of OpenAI's acquisition of Astral, the company behind popular Python tools uv, ruff, and ty, and its implications for the ecosystem.
Explores using Apple's 'LLM in a Flash' research to run a massive 397B parameter AI model locally on a MacBook by streaming weights from SSD.
Report on a prompt injection attack that allowed Snowflake's Cortex AI agent to escape its sandbox and execute malware.
OpenAI introduces GPT-5.4 mini and nano models, detailing their performance, pricing, and a cost example for image description.
A Django core developer warns against over-reliance on LLMs in open-source contributions, emphasizing the need for human understanding.
Mistral AI releases Mistral Small 4, a new 119B parameter open model combining reasoning, multimodal, and coding capabilities.
OpenAI Codex now supports subagents and custom agents for AI-assisted coding, similar to features in Claude Code and other platforms.
Explains how the MacBook Neo's camera indicator light runs in a secure chip enclave, preventing kernel-level exploits from disabling it.
A workshop handout on using AI coding agents like Claude Code and OpenAI Codex for data analysis, visualization, and cleaning tasks.
Jazzband sunset due to AI-generated spam overwhelming open-source project maintenance and GitHub's response.
A speaker shares insights from a fireside chat on AI coding agents, stages of AI adoption, and trusting AI output in software development.