Why most analytics setups fail
You install Google Analytics, Mixpanel, Hotjar, Amplitude, and a custom event tracker. Now you have five dashboards, none of which you check. The data is there but the insight isn't. The problem was never the tools, it was tracking everything instead of what matters.
This workflow gives you four layers, and you only add each one when you actually need it.
The Setup
PostHog for Product Analytics
PostHog is the only analytics tool you need at the start. It's open-source, has a generous free tier (1M events/mo), and does product analytics, session recording, and feature flags in one tool. Here's what to actually track:
- Sign up completed, your top-of-funnel number
- Core action performed, whatever your product's "aha moment" is (first project created, first message sent, first report run)
- Returned after 24 hours, early retention signal
- Upgraded to paid, the money event
- Invited a team member, organic growth signal
That's 5 events. Not 50. Five. You can add more later when you have specific questions.
What to Ignore (Vanity Metrics)
Half of analytics is knowing what not to look at. These numbers feel good but tell you nothing actionable:
- Total page views, meaningless without context. A bot farm can give you 100K views.
- Total registered users, unless they come back, they're not users. They're email addresses.
- Time on page, someone leaving a tab open isn't engagement.
- Bounce rate (in isolation), a 90% bounce rate on a docs page might be great. They found their answer.
- Social media followers, doesn't correlate with revenue. At all.
Focus on: activation rate, retention (Day 1, Day 7, Day 30), and conversion to paid. Everything else is noise until you have 1,000+ users.
Sentry for Error Tracking
Analytics tells you what users do. Sentry tells you what broke. You need both, and they serve completely different purposes. Set up Sentry from day one, it takes 10 minutes and saves you hours of debugging.
- Install the SDK for your framework (Next.js, React, Node, Python, they have everything)
- Set up source maps so errors show real line numbers, not minified garbage
- Configure alerts, get notified on Slack/email when a new error type appears
- Track user context, attach the user ID so you know WHO hit the bug
The free tier covers 5K errors/month. That's plenty unless your app is on fire (in which case you have bigger problems).
Metabase for Dashboards (When You Need Them)
Don't set up dashboards on day one. You won't have enough data to make them useful. Add Metabase when you hit ~500 users and start needing answers that PostHog's built-in charts can't give you.
- Connect it directly to your database. Metabase reads from Postgres, MySQL, etc.
- Build 3 dashboards max: Revenue, Engagement, Growth
- Use SQL mode for complex queries, visual mode for simple ones
- Share read-only links with your team instead of giving everyone login access
Metabase is open-source and free to self-host. Or use their cloud at $85/mo when you don't want to manage infrastructure.
๐ก Pro tip: Check your analytics once a week, not once an hour. Set a "metrics Monday" reminder. Compulsive dashboard-checking is procrastination disguised as work.
Total cost for this stack
- PostHog: Free up to 1M events/mo (then $0.00031/event)
- Sentry: Free up to 5K errors/mo
- Metabase: Free (self-hosted) or $85/mo (cloud)
Total: $0/month until you outgrow the free tiers. Which takes longer than you think.
Want the full stack?
See how analytics fits into the complete growing-stage toolkit.
View Growing Stack โ