Working on a new analytics engine โ a scant eleven months after the previous 'new analytics engine'.
Calling this 3.0
is a bit of a misnomer: most of the code, design, and plumbing from the 2023 redesign is sticking around, just in a more modular format. The goal here is to address a couple shortfalls in the previous architecture:
- Business and presentation logic was split between the backend and the frontend. This made shipping faster, but made it harder to do things like build weekly reports which are calculated entirely from the backend.
- Analytics were very tightly coupled in groups of "breakout metrics", which made in-line calculations very quick but makes it harder to incrementally ship new metrics that are useful but don't fall neatly into existing archetypes.
- The density of the metrics seemed very nice and virtuous to me, but was hard for folks who just wanted to reach for a few KPIs that they really cared about.
The goal of this new tranch of work is threefold:
- Analytics calculations should exist entirely on the backend, in a modular architecture that makes it trivial to add new calculations and filters over time
- Analytics should be portable in a way that makes it easy to embed certain KPIs outside the core analytics page (e.g. in a splash page or in weekly/monthly reporting emails)
- Make it easier for folks to answer lifetime-style KPIs
It's interesting โ it's really hard to find 'good' analytics experiences on the web. One reason I suspect I've had so much design-level churn here (three designs in three years!) is that this feels very much like the wild west, unlike other parts of the app where we've generally settled on what the right designs are for the 80/20 of people.