Building an iNaturalist sightings viewer on a phone with Claude Code
Simon Willison wanted to view observations from two iNaturalist accounts grouped by time and location, and built the entire tool from his phone while camping. The pipeline has three pieces: a Python CLI called inaturalist-clumper that fetches observations and groups them by proximity (default 2 hours, 5km), a Git scraping repo that runs the tool on a schedule and commits the results to clumps.json, and a static HTML viewer that fetches that JSON via CORS from raw.githubusercontent.com.
The viewer itself was generated by a single prompt to Claude Code, asking for a page that lazy-loads small thumbnails from iNaturalist’s CDN, opens larger images in a modal on click, and surfaces common species names. The result is a workflow with no backend infrastructure: GitHub serves as both the scheduled job runner and the data host, and the client-side app pulls everything directly. It’s a compact demonstration of how LLM-assisted coding plus Git-based data hosting can replace what would traditionally need a server stack.
Read the full article
Continue reading at Simon Willison →This is an AI-generated summary. Read the original for the full story.