Simon Willison Bought a Canon R6 Mark II for Bird Photography, Then Used Claude Code on His Phone to Pipe a Decade of Observation Data into His Blog

Simon Willison built a wildlife data pipeline from camera to blog using Claude Code on his phone.
Simon Willison picked up a Canon R6 Mark II for bird photography and uploaded his shots to iNaturalist. He then used Claude Code's web version on his phone to build a new feature integrating over ten years of wildlife observation data into his blog's beats system, complete with search and RSS support — a masterclass in IndieWeb philosophy and AI-assisted mobile development.
Simon Willison Bought a Canon R6 Mark II for Bird Photography, Then Used Claude Code on His Phone to Pipe a Decade of Observation Data into His Blog
When a top-tier programmer buys a camera, he's not just taking photos — he's building an entire wildlife observation data pipeline. Simon Willison recently picked up a Canon R6 Mark II, went on a bird photography spree, then piped all his iNaturalist observation records from the past decade into his personal blog. And the entire development process was done on his phone using Claude Code.
Canon R6 Mark II: A Camera Built for Bird Photography
Simon Willison got himself a Canon R6 Mark II — a full-frame mirrorless camera with a roughly 24.2-megapixel sensor, up to 40 frames per second continuous shooting with the electronic shutter, and AI-driven subject detection autofocus that can recognize birds, animals, and other targets. For wildlife photography, this is basically cheat-code-level gear.
After shooting, he shared his best photos on the iNaturalist platform. This community is jointly operated by the California Academy of Sciences and the National Geographic Society as a citizen science project. Users upload photos, and the platform uses AI image recognition plus community expert assistance to identify species — it's accumulated hundreds of millions of observation records globally.
A guy who works with AI every day bought a camera that uses AI for autofocus to photograph birds, then uploaded the photos to a platform that uses AI for species identification — this isn't photography, it's AI inception. That said, iNaturalist really is a treasure of a platform. Simon tosses his bird photos up there, satisfying his urge to share while contributing to biodiversity research — call it "slacking-off-style scientific contribution."
Integrating iNaturalist Observation Records into His Blog's Beats System
Building on a successful prototype from the previous day, Simon decided to add a new /elsewhere/sightings/ page to his blog, dedicated to showcasing his wildlife observations from iNaturalist. The page features a search bar and RSS subscription icon, with support for browsing by species, time, and other dimensions.
Even more impressive: he back-imported over ten years of iNaturalist data — including lemur photos taken in Madagascar in 2019. The displayed species range from Acorn Woodpeckers and Western Fence Lizards to Ospreys and White-crowned Sparrows — basically a one-person National Geographic.
These observation records were implemented as an extension of the blog's existing beats system. The "beats" concept borrows from journalism, where reporters cover specific "beats" — each external platform corresponds to a beat. Twitter is one, GitHub is one, and now iNaturalist is one too. All aggregated content appears on the homepage, date archive pages, and site search results, achieving true content centralization.
This is a textbook implementation of the IndieWeb philosophy: your content, your turf, your rules. Social platforms come and go, but your personal blog is forever your digital home.
Building the Entire Feature on a Phone with Claude Code
Here's the most mind-blowing part: the entire feature was built on his phone using Claude Code for web.
Claude Code is Anthropic's AI programming tool that understands codebase context and autonomously performs operations like reading files, editing code, and running tests. Its web version lets developers use these capabilities directly in a mobile browser — no local installation required.
Previously, coding on a phone was about as pleasant as threading a needle with chopsticks. Now with agentic AI programming, you just tell it what you want, and it reads the codebase, modifies files, and runs tests on its own. Simon submitted all the code for this development through GitHub PR #668 — a feature born on a phone screen that seamlessly integrates into the homepage, date archives, and site search.
As co-creator of the Django framework and author of open-source tools like Datasette and llm, Simon Willison is one of the most active practitioners in the LLM space. He personally demonstrated how AI-assisted programming turns "develop anywhere, anytime" from an empty slogan into reality — this doesn't just lower the barrier to entry, it bulldozes it entirely.
A Programmer's Hobbies Always End Up Becoming Systems
When a programmer starts photographing birds, those birds don't just get photographed — they get indexed, searched, and RSS-subscribed. In Simon Willison's world, there's no hobby that can't be turned into a system with an API.
From the Canon R6 Mark II's AI autofocus, to iNaturalist's AI species identification, to Claude Code's AI code generation — AI is everywhere in this pipeline from "pressing the shutter" to "content going live." And what ties it all together is a programmer's near-obsessive commitment to owning his own data.
If you're running a personal blog, Simon's beats system approach is worth emulating: funnel all your content scattered across various platforms back to your own site, let readers subscribe via RSS, and make content discoverable through search. Your blog isn't just a place to write articles — it can be the central node of your entire digital life.
Related articles
TutorialsChatGPT Plus Subscription Guide: Are GPT-5.5, image-2, and Codex Worth the Upgrade?
A detailed look at ChatGPT Plus features — GPT-5.5, image-2, and Codex — with a Plus vs Pro comparison and a complete step-by-step subscription guide for users outside the US.
TutorialsHarness AI Engineering in Practice: Using Claude Code to Master Enterprise-Level E-Commerce Development
Deep dive into Harness AI Engineering: master enterprise e-commerce development with Claude Code using the Rules, Skills, Wiki, and Changes framework.
TutorialsCursor + Codex Dual-IDE Collaboration: A Practical Methodology for Open-Source Project Customization
A complete methodology for open-source project customization based on real-world experience, detailing the Cursor+Codex dual-IDE workflow, seven-stage process, MVP validation, and AI source code reading techniques.