After looking what's out there I couldn't find a lightweight analytics platform that worked on the free tier of fly.io.
It's a single Go binary using DuckDB for events and SQLite for metadata, so there are no external dependencies to manage. Drop a script tag on your site and it auto-captures pageviews and clicks.
The part I'm most excited about: it uses an LLM to automatically name raw click events into something human-readable. Instead of seeing button.btn-primary#checkout in your dashboard, you see "Clicked checkout button". No manual event instrumentation needed.
One fly launch and you have your own analytics instance for free.