Developer ToolsSanityNext.jsPrivacyDecember 2025

InsanityLogs: A Privacy-First Log Analyzer for Sanity CMS

We built a free tool that analyzes your Sanity.io request logs entirely in your browser. No data ever leaves your machine.

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:

InsanityLogs dashboard showing metrics, charts, and time series

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

1

Download your logs

From the Sanity dashboard (Settings → Request Logs)

2

Upload to InsanityLogs

Drag & drop or use the file picker

3

Explore the dashboard

With filterable, interactive visualizations

InsanityLogs file upload screen with drag and drop zone

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.

InsanityLogs query analysis showing top queries and performance metrics

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).

InsanityLogs security tab showing threat detection and flagged IPs

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)

Try It Out

InsanityLogs is free, requires no signup, and respects your privacy.

Launch InsanityLogs

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.