Simon Willison’s Weblog

Subscribe

Friday, 1st May 2026

Sighting 10:08 AM – 11:17 AM — Acorn Woodpecker, Western Fence Lizard, Osprey
Acorn Woodpecker
Acorn Woodpecker
Western Fence Lizard
Western Fence Lizard
Osprey
Osprey
A white crowned sparrow singing

I wanted to see my iNaturalist observations - across two separate accounts - grouped by when they occurred. I'm camping this weekend so I built this entirely on my phone using Claude Code for web.

I started by building an inaturalist-clumper Python CLI for fetching and "clumping" observations - by default clumps use observations within 2 hours and 5km of each other.

Then I setup simonw/inaturalist-clumps as a Git scraping repository to run that tool and record the result to clumps.json.

That JSON file is hosted on GitHub, which means it can be fetched by JavaScript using CORS.

Finally I ran this prompt against my simonw/tools repo:

Build inat-sightings.html - an app that does a fetch() against https://raw.githubusercontent.com/simonw/inaturalist-clumps/refs/heads/main/clumps.json and then displays all of the observations on one page using the https://static.inaturalist.org/photos/538073008/small.jpg small.jpg URLs for the thumbnails - with loading=lazy - but when a thumbnail is clicked showing the large.jpg in an HTML modal. Both small and large should include the common species names if available

Thursday, 30th April 2026
Saturday, 2nd May 2026

2026 » May

MTWTFSS
    123
45678910
11121314151617
18192021222324
25262728293031