The Problem
If you're using Sanity CMS, you've probably wondered:
- Which GROQ queries are slowing down my site?
- How much is each API call costing me?
- Are there any suspicious IPs hammering my endpoints?
- Should I be caching more requests through the CDN?
Sanity provides request logs, but they're raw JSON files—sometimes gigabytes of them. Making sense of that data typically means writing custom scripts, setting up log aggregation services, or just... guessing.
The Solution
InsanityLogs is a client-side log analysis tool that turns your Sanity request logs into actionable insights. Upload your logs, and within seconds you'll see:

Query Performance
Which GROQ queries are slowest, most frequent, or returning the largest payloads
Cost Estimation
Approximate costs per query and endpoint for optimization opportunities
Security Analysis
Suspicious IPs, potential credential stuffing, and rate limit candidates
Traffic Patterns
Request distribution over time, API vs CDN usage, and bandwidth breakdown
Anomaly Detection
Automatic detection of traffic spikes, error bursts, and latency degradation
Privacy First
Here's the thing about log data—it's sensitive. It contains IP addresses, user agents, and detailed information about your API usage patterns.
That's why InsanityLogs runs 100% in your browser. Your log files never leave your machine. There's no server, no database, no analytics tracking. Open DevTools and watch the Network tab—you'll see nothing being sent.
This isn't just a privacy feature; it's a core design principle. We built this tool to be something we'd trust with our own production logs.
How It Works
Download your logs
From the Sanity dashboard (Settings → Request Logs)
Upload to InsanityLogs
Drag & drop or use the file picker
Explore the dashboard
With filterable, interactive visualizations

The tool handles files up to 2GB and uses streaming parsers to efficiently process millions of log entries without crashing your browser.
Key Features
Query Analysis
See your top queries ranked by frequency, latency, error rate, or response size. Click any query to see detailed percentile breakdowns (p50, p90, p95, p99) and sample requests.

Cost Estimation
Get a rough estimate of what each query and endpoint is costing you. While these aren't exact billing numbers, they're useful for relative comparisons—identifying which 20% of queries are responsible for 80% of costs.
Security Insights
Automatically flag IPs with unusual behavior: high error rates, request bursts, user agent rotation, or patterns consistent with scraping or credential stuffing. Each flagged IP gets a threat score and recommended action (block, rate limit, investigate, or monitor).

Tag-Based Feature Tracking
If you use Sanity's tag feature, InsanityLogs groups your queries by tag so you can monitor the health of specific features in your application.
Export Reports
Generate PDF reports, CSV data exports, or PNG screenshots to share with your team or stakeholders.
Technical Details
For those interested in the implementation:
Framework
Next.js 15 (App Router)
Language
TypeScript (100% type-safe)
Charts
Recharts
UI
shadcn/ui + Tailwind CSS
Compression
fflate for gzip
PDF Generation
jsPDF + html2canvas
Large files (>50MB) use a streaming aggregator that processes entries incrementally, computing statistics without loading everything into memory.
Limitations
Being browser-based has tradeoffs:
File size limit
2GB maximum (browser tabs are limited to 2-4GB of memory)
No persistence
Analysis is lost when you close the tab
Single machine
Can't share dashboards with teammates (yet)
For files larger than 2GB, we provide CLI commands to split or sample your logs before uploading.
What's Next
We're actively developing InsanityLogs. On the roadmap:
- Multi-file comparison (before/after deployments)
- Query optimization suggestions with GROQ rewrites
- Real-time log streaming
- Team sharing (optional, with encryption)
About
InsanityLogs is built by Convoke Software. We're a small team that builds tools for developers. If you have feedback, feature requests, or bug reports, reach out at insanity-logs@convoke.software.
This tool is currently in beta. Cost estimates are approximations and may not reflect actual Sanity billing. Use insights as guidance, not absolute values.