iNaturalist Sightings

Tool: iNaturalist Sightings (https://tools.simonwillison.net/inat-sightings) I wanted to see my iNaturalist (https://www.inaturalist.org) observations - across two separate accounts - grouped by

Tool: iNaturalist Sightings (https://tools.simonwillison.net/inat-sightings)

I wanted to see my iNaturalist (https://www.inaturalist.org) 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 (https://github.com/simonw/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 (https://github.com/simonw/inaturalist-clumps) as a Git scraping (https://simonwillison.net/series/git-scraping/) repository to run that tool and record the result to clumps.json (https://github.com/simonw/inaturalist-clumps/blob/main/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 (https://github.com/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 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

    Tags: tools (https://simonwillison.net/tags/tools), claude-code (https://simonwillison.net/tags/claude-code), inaturalist (https://simonwillison.net/tags/inaturalist), generative-ai (https://simonwillison.net/tags/generative-ai), ai (https://simonwillison.net/tags/ai), llms (https://simonwillison.net/tags/llms)
Write a comment
No comments yet.