Performance

Measuring and improving real-world page speed. Core Web Vitals — LCP, CLS, INP — explained in terms of what users feel, how to collect field data from your own analytics rather than a lab tool, and how to read the numbers once you have them.

9 guides on performance.

Hot and Cold Storage for Analytics Without a Data Warehouse

Recent data should be fast; old data should be cheap. How to tier analytics storage between a local DuckDB file and Parquet on S3, and query across both in one SQL statement.

Aug 24, 20269 min readRead

Request Coalescing: Fixing the Thundering Herd in Analytics

When a cache key expires, every concurrent request misses at once and fires the same expensive query. Coalescing makes one of them do the work and the rest wait on its promise.

Aug 22, 20266 min readRead

Collecting Heatmap Data Without Drowning Your Database

Click heatmaps generate far more events than pageviews. Coordinate normalisation, scroll-depth milestones instead of continuous tracking, and aggregating early so the raw stream stays affordable.

Aug 16, 20267 min readRead

Building Scheduled Reports That Do Not Melt Your Server

Everyone wants a Monday morning email. The generation queue, idempotency so a retry does not double-send, and why scheduled reports are the query pattern most likely to take down an instance.

Aug 12, 20267 min readRead

Writing a Tracking Script That Does Not Slow Down the Site

Your tracking script runs on every page of every customer. Size budgets, sendBeacon over fetch, why it must never block rendering, and failing silently when the collector is down.

Aug 10, 20267 min readRead

Counting Live Visitors Accurately

'Active now' sounds trivial and is not. Choosing the activity window, why heartbeats beat pageviews, deduplicating across tabs, and keeping the query cheap enough to run every ten seconds.

Aug 4, 20266 min readRead

Benchmarking Analytics Queries Honestly

Most published analytics benchmarks are marketing. Cold vs warm cache, realistic data distributions, measuring percentiles not averages, and publishing the harness so people can check.

Jul 29, 20268 min readRead

DuckDB Performance Tuning: Ten Techniques That Work

Practical DuckDB optimization — memory limits, projection and filter pushdown, reading EXPLAIN ANALYZE, join order, Parquet pruning, and when materialization beats views.

Jul 18, 20266 min readRead

Monitoring Core Web Vitals (LCP, CLS, INP) From Your Own Analytics

Learn what Core Web Vitals are, the thresholds Google uses, and how to monitor LCP, CLS, and INP from real users with self-hosted, privacy-first analytics.

Jun 29, 20267 min readRead