Project· Updated May 2026

Hosted product analytics tools — Amplitude, Mixpanel, PostHog — are built for human users navigating a UI, with a dashboard team poking at funnels in a browser. The shape of my apps changed, so the tool changed.
bq-analytics is a small npm package that pipes events, logs, and user feedback straight to BigQuery from a Next.js app. There's no dashboard. The point is that every event lives in a single warehouse you can query from a notebook, an LLM, or a cron job.
Why BigQuery
Two reasons. First, the free tier is generous enough that an indie project costs essentially nothing per month — well under the threshold where most hosted analytics start charging. Second, BigQuery is the warehouse my agents already know how to query. Putting events somewhere Claude can read them by default is more valuable than putting them somewhere a human can drag-and-drop charts.
The vibecode story
Most of the package was written by Claude. I described what I wanted, gave it the existing event names from another project, and let it generate the SDK, the schema, the worker that batches inserts, the docs, the release script. The interesting part wasn't the code — it was watching how much faster the iteration loop got when "let me try one more shape" stopped being a half-day commitment.
Frequently asked
Does this replace Amplitude for everything?
No. If your team is humans clicking through funnel charts in a browser, hosted analytics is still the right tool. bq-analytics is for projects where the question is more often "show me last week's signups" than "build me a retention dashboard," and where the answer is going to be read by you or by an agent, not presented in a meeting.
Why no dashboard?
Because the dashboard is the expensive part. Once the data is in BigQuery, every tool that talks to BigQuery is a dashboard — Looker Studio, Hex, a notebook, an LLM. Building one more bespoke dashboard on top of a fresh schema would have been the longest part of the project.