Build vs. buy: should you build your own product analytics?
An engineer who looks at a product analytics tool has the same first thought: I could build this myself. Create an events table, an endpoint that takes a POST, a bit of dashboard work on top. A weekend, maybe two.
And, that first thought is correct, but that's exactly what makes it expensive. You can build the first version in a weekend. The weekend version works. What you're really signing up for is everything that arrives in the months after the weekend, once the thing you built meets real usage.
Disclosure: I build Beacon, a product analytics tool. I'd built homegrown telemetry a couple of times before that, which is the part I'm actually drawing on.
This post assumes you've already decided you need product analytics. If you haven't, start here instead. The question on the table now is how you get it: build it, or buy it.
What the weekend version gets you
The first version is genuinely small. A table with columns for event name, a timestamp, a user or install ID, and a JSON blob of properties. An endpoint that inserts a row. One or two queries you run by hand when someone asks a question. Ship it inside your app, start collecting, and feel good about it.
For a few weeks it does the job. You can answer "how many people clicked export last week" with a SQL query against the table. This is the part that convinces you the whole thing was easy, but it's also the last part that's easy.
Where it stops being a weekend project
Then the data grows, and each of the following stops being optional. None of them were in the original estimate.
The events table gets slow. Once the raw table is into the tens of millions of rows and climbing, the GROUP BY behind a dashboard slides from instant to slow to past your timeout, and the first you hear of it is a coworker emailing that a report won't load. Now you need an aggregation layer: rollup tables, a job that computes them on a schedule, a way to keep them correct when events arrive late or out of order. That's a second system, and it's harder than the first one.
Your customers go offline. If your software runs on a laptop on a plane, or behind a corporate firewall, or on a machine that hasn't seen the internet since Tuesday, the events generated there never reach you unless the client stores them locally and retries later. A durable on-device queue with backoff and a size cap is real client engineering, and it's the piece you probably skipped. The result is a hole in your data sitting exactly where your most locked-down, often most valuable, customers live.
Someone has to build the UI. Raw SQL access is fine for the one engineer who wrote the schema. The product manager who actually needs the numbers can't use it. So either you become the human query interface for your own company, answering data questions by hand forever, or you build the charts, filters, date pickers, and segments. The UI is where months start to disappear.
Operational Concerns A retention job that prunes or anonymizes old events on a schedule, since holding raw history forever is a data-minimization problem even when storage is cheap and every ID is opaque. Backpressure for the day a buggy build of your own app gets stuck in a loop and hammers the ingest endpoint. Alerting for when any of this breaks at 2am. Each one is small on its own. Stacked together, they are the year.
And all of this only buys you a blank dashboard. The reason you wanted analytics in the first place is the actual analysis that sits on top of the raw events: funnels that show where trial users drop off, retention and churn views that show who comes back and who you're about to lose, segments that group users by what they actually do, exception reports that fingerprint a stack trace and roll up every occurrence of it, alerts that email you when an error rate spikes or a key event stops arriving. Each one is a feature in its own right, with queries and a UI that take real time to get correct, and a bunch of edge cases the analytics vendor already paid to discover. The raw events table is where the real work starts. An off the shelf tool hands you that work already done.
The cost you don't see on the estimate
The build cost is the visible number, and it's the smaller one. Call it the better part of a year of focused work for a small team to get from the weekend version to something you'd actually trust in front of the business. The larger cost is what that work pushes off the roadmap.
The engineer who builds your analytics becomes the engineer who maintains it. Every schema change, every scaling surprise, every "why is the dashboard wrong this morning" routes back to them. They're now half an analytics vendor and half whatever you originally hired them to do. And analytics is always the first thing to get paused: a customer escalation lands, the failing rollup job waits, the data rots, and nobody notices until someone makes a real decision on a number that's been wrong for a month.
When building actually makes sense
Sometimes building your own is the right call:
- Analytics is part of what you sell. If the insights are your product, the pipeline is core to the business and you should own every inch of it.
- You have requirements nothing off the shelf meets. Truly unusual event volumes, a data model no tool fits, a regulatory constraint that forbids any third party from touching the data.
- You already run a data platform team. If a team already owns the warehouse, the pipelines, and the dashboards on top, adding product events is an increment, not a new system.
- Your scale breaks per-event pricing. At billions of events a month, usage-based pricing can cost more than the team would.
If one of those describes you, build it, and build it properly. If none of them do, the weekend project is a tax you'll keep paying for years.
The math
Thinking this out in round numbers, since false precision helps nobody. A senior engineer who could build this well costs you, fully loaded, north of $150k a year. Building the real thing rather than the weekend version takes a small team the better part of a year, which is two or three of those salaries before the maintenance tail that never fully ends. Now we're talking big money. A product analytics subscription that does the same job runs in the hundreds of dollars a month, low thousands once you're at serious scale.
The subscription looks expensive next to the $0 of "I'll just build it." It looks cheap next to two or three engineering salaries and the roadmap those people didn't ship because they were busy reinventing ingestion. You need to ask yourself: do you really want to be in the analytics business? You already have your own product - wouldn't it be nice to just focus on it.
You don't have to decide forever on day one
If you're genuinely unsure, instrument with a tool now and keep ownership of your raw event stream while you watch how it goes. Good tools let you export, so the data stays yours. You get the dashboard, the offline-safe SDK, and the aggregation layer today, without betting a year of headcount on it.
If you do outgrow the tool later, you'll outgrow it holding real numbers about your own volumes and the questions you actually ask. That's a far better place to start a build from than a guess made on a Saturday with no data at all.
So, build or buy?
The real question was never whether you can build it. You can. The question is whether product analytics deserves a year of your best engineer's time when the alternative is an afternoon of integration and a predictable monthly bill. For a few companies, the ones who sell data or run at extreme scale, the answer is yes. For the typical ISV shipping desktop or server software with one or two engineers stretched across everything, it isn't close.
If you want to feel what the buy side is like before committing to anything, Beacon has a 21-day free trial, no card needed up front. Wire up a handful of events, look at the data, and make the call with something real in front of you. Start the trial, or read the 30-minute .NET walkthrough first to see how short the integration actually is.