Deep Trace
See exactly which function caused each read
Pinpoint the hot path fast: route, caller, executions, and the collection that scales your bill.
Works with your stack
Next.js
Verified
SSR Compatible
Nuxt
Full Support
REST/proxy
Works with Nuxt Hooks
React
Verified
Works with React Hooks
Vite
Verified
Works with Vite Plugins
Angular
Compatible
Installer adds the widget to your HTML entry (e.g. src/index.html).
Vue
Compatible
Most Vue apps: follow our Vite guide. The bundled recordRead composable ships with Nuxt only.
Firestore charges per document read, not per query. A page that looks harmless in development can become expensive once real users start loading it.
Data is taken from a personal project that uses all firebase services.
ReadMeter makes those page-load patterns visible early — on localhost, before you ship.
Get ReadMeter — $9One-time license · One device · Dev-only · Client + Admin SDK · Updates included
Real results
Stories from developers who caught expensive page-load patterns early. Not a leaderboard — proof that visibility helps you decide what to fix.
| Project | Reads | Change |
|---|---|---|
LWO Primary Education app focusing on practising English as a second language. Teachers relies on daily reports for tracking students' progress so fetch massive up to date data on a daily basis. Verified customer | 5,400 → 800 | ↓ 85% |
The Globals Primary and Secondary Education App. Students & Teacher fetch units, submit assignments and work on reports so repeated actions causes too many reads. Verified customer | 312 → 64 | ↓ 79% |
Vestel Learning Academy Caught unbounded leaderboard and admin dashboard queries during development. Caching and query limits cut session reads by ~80%. Verified customer | 12,000 → 2,500 | ↓ 79% |
Verified customer means we confirmed a valid ReadMeter license. Reviewed story means we manually reviewed the public claim before publishing.
Trace where reads come from, generate AI-ready fixes, and track local history while you build.
Deep Trace
Pinpoint the hot path fast: route, caller, executions, and the collection that scales your bill.
AI-Fix
Copy a context-rich prompt to Cursor or Claude with offender details and optimization hints.
Refactor loadDashboardFeed() in /dashboard: - It executes 6x and triggers 240 reads - Batch post+author lookups - Add cache layer for repeated renders
Local History
Compare routes over time without external dashboards or production instrumentation.
JSON Export
Save route-level read data as JSON so you or your team can diff, audit, and discuss optimizations with context.
{
"route": "/dashboard",
"totalReads": 312,
"worstOffender": "loadDashboardFeed()",
"collection": "posts"
}The root causes
Most developers only see the total after a bill arrives — not the individual patterns that caused it.
One project: monthly Firestore costs dropped from ~$190 to ~$75 after catching expensive read patterns early.