[verdict][curated prompt][source: posthog.com]
Can I vibecode PostHog?
// the value is the network, the data or the infrastructure
First-party collection and a dashboard that answers your top five questions is one sitting of work, and PostHog's free tier covers a million events a month before you pay anything. What the bill buys past that is the rest of the platform: session replay, feature flags, SQL over years of events, and ingestion that stays correct while your event schema drifts underneath it.
confidence: high
what it is: Product analytics with session replay, feature flags, and a data warehouse
Buildability index · an editorial game
- Price usage-based weight: zero
- Time closest consolation build: one sitting weight: minus 1
- Category analytics no weight
- Moat infrastructure scale · switching costs weight: minus 3
- Confidence high weight: plus 1
- What you lose 5 items weight: minus 2
- Site posthog.com (si apre in una nuova scheda) no weight
It is not close. The prompt below rebuilds a piece, not the product.
Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.
What you build
Collect first-party pageviews and custom events from your own sites, keep the raw rows yourself, and answer a handful of product questions from a local dashboard.
what you need
- Node 22
- a small always-on VPS
- a domain you control, for first-party collection
The charts are the easy part. A pipeline that never quietly stops collecting is the product, and that is the part you inherit when you self-host.
The prompt
The verdict is NOT REALLY, and the prompt stays anyway: it does not replace the app, it rebuilds the part that really is code. The rest is the moat.
Build me a self-hosted web analytics box to replace PostHog. Requirements:
- One Node 22 + Express process with better-sqlite3, serving the collector and the
dashboard on port 8787. No frontend framework, no build step, no Docker.
- A tracker.js I paste on my sites: pageviews on load and history change, plus
window.track('signup', { plan: 'pro' }), POSTed to /e on my own domain so
collection stays first-party.
- One SQLite events table: site, event, path, referrer, UTM fields, country from the
proxy header, device class, and a JSON properties blob.
- Count visitors by a daily-rotating salted hash of IP plus user agent, salt in .env.
No cookie, never the raw IP. That is the whole privacy design, keep it.
- Dashboard at / with a date range picker: visitors and pageviews by day, top pages,
referrers, countries, any event split by one property, and a three-step funnel.
- Nightly rollup into a daily-summary table, raw events pruned past the retention
window in .env, /export.csv for the raw rows.
- Basic auth on the dashboard, collector open. No accounts, no telemetry, my box
holds the only copy.
- Out of scope: session replay, feature flags, and stitching one person across
devices. Do not build a plugin system or a warehouse connector.
- README: the snippet to paste, where the SQLite file lives, and how to back it up. Curated prompt: written and reviewed by hand for this app. In English on purpose — it is the language coding agents work best in.
What you lose
- session replay
- feature flags and experiments
- identity stitching across devices
- SQL over years of events
- ingestion that stays up without you watching it
Why people still pay
Teams pay because analytics has to keep collecting and stay trustworthy while the product changes underneath it. The bill buys bot filtering, identity resolution, late-arriving data, retention, query cost, and someone else getting paged when ingestion stops. The charts are the cheap part.
moat: Infrastructure scale Switching costs what a moat is
data pipeline reliability and analytical depth
Who has already built it
Starting from here is still vibecoding: the prompt is for when you want it exactly your way.
- Umami (opens in a new tab) — Popular open-source privacy-focused web analytics platform.
Do you agree?
The vote balance
Ancora nessun voto: il tuo è il primo.
Nessun voto ancora — il primo pesa.