Simon Willison Uses Phone + Claude Code to Add Wildlife Observation Feature to His Blog

Developer Simon Willison used Claude Code on his phone to build a wildlife sightings feature for his blog
Renowned developer Simon Willison used the web version of Claude Code directly on his phone to build a "Sightings" feature for his personal blog, integrating wildlife observation records from iNaturalist. Built on his Beats content aggregation system, the feature supports search, RSS subscription, and paginated browsing, with a backfill import of ten years of historical data. This case demonstrates how AI programming tools are moving beyond efficiency gains toward fundamentally expanding development scenarios, while also reflecting the trend of AI lowering barriers to personal website development and driving a personal blog renaissance.
Developer Uses AI Coding Tool on Phone to Build New Blog Feature
Simon Willison—renowned developer and creator of Datasette—recently shared an interesting project: using the web version of Claude Code directly on his phone, he added a "Sightings" feature to his blog that syncs wildlife photos he shares on iNaturalist to his personal site.
Simon Willison has broad influence in the developer community. He was one of the early core contributors to Django, the Python web framework, and participated in Django's early development work at The Guardian newsroom in the UK. His creation, Datasette, is an open-source data exploration and publishing tool that can instantly transform any SQLite database into an interactive web interface and API. It's widely used in data journalism, open data publishing, and rapid prototyping. In recent years, Simon has become one of the most active practitioners and documenters in the AI-assisted programming space—his blog is practically required reading for tracking how LLM tools are applied in real-world development.
Behind this seemingly simple feature lies a reflection of how AI-assisted programming tools are changing developers' workflows—not just improving efficiency, but fundamentally expanding the scenarios in which development can happen.
From New Camera to New Feature: The Origin of the Project
Simon recently picked up a Canon R6 Mark II camera and started extensively photographing birds and wildlife. The Canon R6 Mark II is a full-frame mirrorless camera released by Canon in late 2022, featuring a 24.2-megapixel sensor and DIGIC X image processor, supporting up to 40 frames per second with the electronic shutter, and equipped with a deep learning-based subject detection autofocus system capable of recognizing and tracking people, animals (including birds' eyes, heads, and bodies), and vehicles. These features make it a popular choice among wildlife and bird photography enthusiasts—high-speed burst shooting captures birds in flight, while animal eye detection AF dramatically improves the keeper rate.
He shares his best work on iNaturalist—a global nature observation community platform. iNaturalist is jointly operated by the California Academy of Sciences and the National Geographic Society, with millions of registered users and billions of cumulative biological observation records. Every photo uploaded by users undergoes dual identification by community members and AI models: the platform's built-in computer vision model automatically suggests species names, while taxonomic experts in the community further confirm or correct these identifications. When an observation record achieves sufficient community consensus, it's marked as "Research Grade," and this data is subsequently synced to scientific databases like the Global Biodiversity Information Facility (GBIF), becoming genuine citizen science contributions. iNaturalist also provides comprehensive API interfaces—the technical foundation that enables Simon to flow data back to his personal blog.
After completing the proof of concept, Simon decided to integrate this content into his blog system.
The core of the new feature is a "Sightings" page displaying his wildlife observation records, including:
- A chronologically sorted observation list
- Species names and photos for each observation
- Support for search, RSS subscription, and paginated browsing
- A total backfill import of over ten years of iNaturalist data
An interesting detail: because historical data was backfilled, users can now search "lemur" on his blog and find photos of lemurs he took in Madagascar in 2019.
Technical Implementation: Content Aggregation Architecture Based on the Beats System
This feature wasn't built from scratch but rather on Simon's previously developed Beats system—a blog extension framework for aggregating external content. The Beats system's design philosophy is to bring content from different platforms into a unified blog content system.
In traditional blogs and content management systems (CMS), content types are usually predefined—posts, pages, comments, etc. Adding new content forms (like bookmarks, short notes, or observation records) often requires modifying database models, creating new admin interfaces and frontend templates—no small amount of work. The elegance of the Beats system is that it provides a generic content aggregation layer: each external content source (what Simon calls a "Beat") can plug into the blog system through a unified interface, automatically gaining timeline display, archiving, search indexing, and RSS output capabilities. This architecture is similar to WordPress's Custom Post Types mechanism but is more lightweight and focused on external content aggregation scenarios. Developers only need to define how data is fetched and its display template—the rest of the infrastructure is handled uniformly by the Beats framework.
Through this extension, Sightings are fully integrated with the blog's other content forms:
- Homepage display: Observation records appear in the blog homepage's content stream
- Date archives: Date archive pages show corresponding observation records
- Site search: All observation records are indexed and support full-text search
- RSS subscription: An independent RSS feed is provided
RSS (Really Simple Syndication) is a web content distribution format born in 1999 that allows users to subscribe to website updates through RSS readers (such as Feedly, NetNewsWire, Miniflux, etc.) without repeatedly visiting the site itself. Although RSS was once considered "outdated" during the rise of social media, it has been experiencing a significant resurgence in recent years as users grow fatigued with algorithmic recommendations and place greater value on information autonomy. In independent blogs and tech communities, providing an RSS feed is almost a basic courtesy—representing respect for the open web and user choice. Simon providing an independent RSS feed for the Sightings feature means readers can subscribe solely to his wildlife observation records without following all blog content.
This practice of "flowing external platform content back to a personal blog" embodies the reverse practice of the "POSSE" (Publish on your Own Site, Syndicate Elsewhere) principle from the IndieWeb movement—aggregating content from various sources back to one's own domain.
IndieWeb is a grassroots technology movement that began in 2011, with the core proposition that individuals should own their online identity and content rather than entrusting everything to large platforms. The IndieWeb community has proposed a series of technical standards and practical principles, the most well-known being POSSE—first publish content on your own website, then syndicate it to third-party platforms like Twitter, Mastodon, Medium, etc. This way, even if a platform shuts down or changes its policies, your content remains safely stored on your own server. Simon's approach is actually closer to another IndieWeb concept—PESOS (Publish Elsewhere, Syndicate to your Own Site), where content is first published on an external platform (iNaturalist), then flows back to be aggregated on the personal website. These two strategies aren't contradictory—they jointly serve the same goal: making your personal website the authoritative source and permanent archive for all your digital content.
Completing All Development on a Phone with Claude Code
What's most noteworthy is the development method itself. Simon explicitly stated that this feature was completed on his phone using Claude Code for web. He publicly shared the corresponding PR #668 and the prompts he used on GitHub.
Claude Code is an agentic programming tool released by Anthropic. Unlike traditional code completion tools (such as early GitHub Copilot, which primarily provided line-level or function-level code suggestions in IDEs), Claude Code operates in an "agentic" mode: developers describe requirements or tasks in natural language, and the AI autonomously plans execution steps, reads relevant files in the project to understand codebase context, writes and modifies code, runs tests, and even directly creates Git commits and Pull Requests. It's not merely a "smarter autocomplete" but rather an AI programming assistant capable of understanding the entire project structure and independently executing development tasks. Claude Code was initially released as a command-line tool, later launching a web version (Claude Code for web), which enables it to be used on any device with a browser—including phones. This is precisely what allowed Simon to complete the entire development workflow on his phone.
This means the entire development flow—from requirement description, to code generation, to submitting the PR—was completed on a mobile device through conversation with AI. This isn't a toy project but a complete feature involving data model extensions, API integration, frontend display, and search indexing.
AI-Assisted Programming's Scenario Breakthrough
Traditional software development is highly dependent on desktop environments: IDEs, terminals, multiple monitors. Tools like Claude Code are breaking this limitation. When developers can describe requirements in natural language and AI handles translating them into runnable code, input device constraints are no longer a bottleneck.
The significance of this shift needs to be understood within the broader development trajectory of AI-assisted programming tools. The release of GitHub Copilot in 2021 marked AI programming tools entering the mainstream consciousness—based on OpenAI's Codex model, it provided real-time code suggestions in IDEs. Since then, the field has evolved rapidly: Cursor deeply integrates AI capabilities into a code editor, supporting cross-file context understanding and code refactoring; Windsurf (formerly Codeium) offers a similar intelligent editing experience; Replit's Ghostwriter and Google's Gemini Code Assist are also making strides in their respective ecosystems. Claude Code represents an even further step in the agentic coding direction—it no longer requires developers to review and accept suggestions line by line, but lets AI autonomously complete the full chain from understanding requirements to delivering code. This leap from "assistance" to "agency" is the key technological inflection point that makes "completing full feature development on a phone" possible.
The implications for developers' daily workflows are profound:
- Utilizing fragmented time: Commuting or waiting can become productive project time
- Reducing context-switching costs: When inspiration strikes, you can act immediately
- Accelerating prototype validation: The cycle from idea to working code is dramatically shortened
The Revival of Personal Blogs: AI Lowers the Barrier to Building Your Own Digital Space
Simon Willison's project also reflects a larger trend: with the support of AI programming tools, personal blogs are experiencing a kind of renaissance. In the past, maintaining a feature-rich personal website required substantial development time, driving many people toward third-party platforms. But when AI can dramatically reduce development costs, "owning your own digital space" becomes far more feasible.
This trend echoes a broader internet cultural shift. Over the past decade, content creators and ordinary users have increasingly recognized the risks of depending on centralized platforms: Twitter's (now X) dramatic policy changes, Medium's constantly adjusted paywall strategy, Reddit's API pricing controversy, and various platforms' opaque algorithmic control over content visibility have all pushed people to reassess the value of "digital sovereignty." Meanwhile, the maturation of static site generators (like Hugo, Astro, 11ty), free hosting services provided by platforms like Vercel and Netlify, and now the addition of AI programming tools have collectively lowered the technical barrier to building and maintaining a personal website to a historical low. Simon's case is particularly compelling: he's not just maintaining a blog but building a fully functional personal digital platform—integrating article publishing, link collections, wildlife observation records, and multiple other content forms—and all of this incremental development can be done on a phone through conversation with AI.
From tech blog to wildlife photography gallery, from search engine to RSS aggregator—a personal blog can become a true digital home, and AI programming tools like Claude Code dramatically lower the barrier to making it all happen.
Key Takeaways
- Simon Willison used the web version of Claude Code on his phone to develop a wildlife observation record (Sightings) feature for his blog
- The feature is built on his Beats content aggregation system, fully integrating iNaturalist observation data into the blog's homepage, archives, and search
- Over ten years of iNaturalist historical data was backfill-imported, achieving unified management of personal content
- Completing full feature development on a phone through AI conversation demonstrates the fundamental expansion of development scenarios enabled by AI programming tools
- It exemplifies the trend of AI tools lowering the barrier to personal website development and driving a personal blog renaissance
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.