Should I vibe code
Run first-party web analytics with goals, campaigns, and user-owned data
First-party analytics you host yourself is the version that actually respects the visitor.
?
Their verdict, the Essential price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-03.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Heavier than the minimal trackers because goals and campaigns are real features, but self-hosting keeps the data yours and the compliance story simple.
What actually breaks
not "if". the specific failures.
- Scope, because goals, funnels and campaign attribution are a different product from counting page views
- Attribution itself, which requires a model — last touch, first touch, position-based — and every model gives a different answer
- Sessions, which need a definition: how long is a gap, what ends one, does a new campaign start a new session
- Cross-device and cross-domain journeys, which are only solvable with an identifier you have decided not to keep
- The privacy position, since richer analysis pulls toward exactly the identifiers the category exists to avoid
You add campaign attribution because you want to know which post brought people in. The first report is convincing and you act on it. Then you notice it uses last touch, so the post that introduced someone to the site gets no credit if they returned later via search — and the search result you were about to stop investing in is the one that closed. The data is correct. The model is a choice you made without noticing you were making it, and it is the model that produced the conclusion.
Is that you?
the verdict is a default, not a law
- You start with counts and add analysis only when you have a specific question
- Every derived metric states the model behind it
- You are honest that cross-device journeys are out of reach without identifiers
- You are adding identifiers to enable richer analysis on a privacy-first tool
- Attribution numbers are presented without naming the model
- You are rebuilding a full analytics suite rather than answering a question
- Session boundaries are undefined but session metrics are displayed
If you build it anyway
the checklist, then the prompt that enforces it
- Start with counts. Add each analytical feature only when you have a specific decision it would inform — this category grows without limit otherwise.
- Name the attribution model wherever a number appears, because the model determines the answer more than the data does.
- Define the session boundary explicitly and put it in the interface, since every session metric depends on an arbitrary timeout.
- Resist adding identifiers. Richer analysis pulls toward cross-device tracking, and that is the line this category exists on the safe side of.
- State plainly what cannot be measured without identifiers rather than approximating it silently.
- Prefer self-hosting Matomo over rebuilding it if you want the full feature set — the depth is the product.
Before you build analytics with goals and attribution, apply these and push back if I ask you to break them. 1. Start with page and event counts. For every analytical feature I ask for, make me name the decision it would inform. Tell me this category expands without limit and that most of the value is in the first ten percent. 2. Whenever you display an attribution number, state the model — last touch, first touch, linear, position-based — next to it. Explain that the model determines the answer more than the underlying data does, and that choosing one silently is how people reach confident wrong conclusions. 3. Define the session timeout explicitly, put it in the interface, and tell me every session metric depends on that arbitrary number. 4. Refuse to add a persistent identifier or cross-device tracking. If I ask for a cross-device journey, tell me it is not answerable without exactly the identifier this tool exists to avoid, and say so in the UI rather than approximating. 5. Normalise campaign parameters and referrers into a documented, small set of sources. 6. Filter bots before storage, and never persist raw IP or user agent. 7. Set retention and aggregation policy before storing events. 8. If I want the full feature set, tell me to self-host Matomo rather than rebuild it — the depth is the product and it is open source. 9. Out of scope unless I ask: heatmaps, session recording, A/B testing, user IDs, ecommerce tracking.
That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
$26 a month, or self-hosting the open-source version, is the right answer if you want goals, funnels and attribution — that depth is a product rather than a weekend. A first-party page-view counter you own is the version that is genuinely a good build, and it answers most questions people actually have.
Keep aggregates and the definitions behind them — attribution model, session timeout, bot filter version — since a number without its definition is not comparable to a future one. Self-hosted Matomo has a documented schema, which makes moving toward it a realistic path.
Popular open-source privacy-focused web analytics platform.
Questions
Why does the attribution model matter more than the data?
Because the same visits produce different winners under different models. Last touch credits whatever came immediately before the conversion, first touch credits the introduction, and position-based splits it. Each is defensible and they routinely disagree about which channel to invest in — so a number presented without its model is not an answer, it is a choice someone made for you.
Isn't a session a well-defined thing?
No — it is a convention. The common default ends a session after thirty minutes of inactivity, but that number is arbitrary, and choices like whether a new campaign starts a fresh session vary between tools. Every session-based metric inherits that arbitrariness, which is why the timeout belongs in the interface rather than buried in configuration.
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
Self-hosting analytics is the one case where doing it yourself is also the privacy-correct answer.
Counting page views without cookies is a POST and a table. This one you should own.
No cookies, no personal data, no banner. Also no reason to pay $20 a month.
last reviewed 2026-08-03 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice