Blog

Notes from
building the thing

Product analytics, query engines, and the unglamorous parts of running a small company that ships every week.

Engineering

How we made funnels three times faster by scanning once

The old executor did one pass per funnel step, which meant a six-step funnel read the same eight billion rows six times. Here's the rewrite, the two dead ends we hit on the way, and the benchmark harness we now run on every commit.

Read the post

Recent posts

Product

Your activation metric is probably three metrics

Most teams define activation as one event. In the data it almost always behaves like a bundle — and separating it changes what you build next.

Company

Why every engineer here does support

One day a fortnight, no exceptions. It costs us about 5% of engineering time and it's the cheapest research we've ever bought.

Engineering

De-duplicating events at the edge, cheaply

A bloom filter, a 48-hour window and one nasty edge case involving retries across a region failover.

Product

We deleted 60% of our alerts and people noticed more

What happened when we stopped firing on fixed thresholds and started modelling each metric's weekly rhythm instead.

Company

Why we price on events and not on seats

Seat pricing charges you for sharing information. For an analytics tool that's not just unfair, it's actively counterproductive.

Engineering

Masking session replay before it leaves the browser

Server-side redaction is too late. Here's the DOM-level approach we shipped, and what it still can't catch.

One email a month

What shipped, what we learned, and the occasional long post about query planning. No product announcements dressed up as thought leadership.

Get started

Ship on Monday.
Understand it by Tuesday.

Free for 30 days on the full product. Five-minute install, no card, no onboarding call unless you want one.

  • SOC 2 Type II
  • EU & US data residency
  • Cancel in one click