I Set Up Analytics at Three Startups Without a Data Team. Here's the Stack That Actually Works.
The problem isn't setting up analytics. It's knowing what to track before you have users.
When I joined Sonic Linker's founding team, we were three weeks from launching our AI SaaS platform. The founder asked me to "set up analytics" so we could see how users interacted with our link analysis tool.
I had no data engineer. No analytics experience. And honestly, I wasn't even sure what events mattered yet.
Most guides tell you to "define your metrics first." That's great advice if you already know your product. But when you're pre-launch or just figuring out product-market fit, you don't know what matters. You need something lightweight that captures everything, lets you query it later, and doesn't require engineering time every time you want to add a new event.
Here's the stack I've used at three different startups, and why each piece matters.
Start with Mixpanel (or Amplitude). But not the way you think.
I picked Mixpanel because it had a generous free tier and I could instrument it in a day. But here's what I did differently.
Instead of carefully planning out 15 specific events, I set up autocapture for every click, page view, and form submission. Yes, it's messy. Yes, you get a ton of noise. But when you're moving fast, you need the data to exist before you know you need it.
Two weeks after launch at Sonic Linker, our CEO asked, "How many people are clicking the export button but not downloading the file?" I had the answer in 10 minutes because autocapture had logged it. If I'd only tracked "Download Completed," I would've missed the drop-off entirely.
The trick is layering custom events on top of autocapture. I added manual tracking for: - Successful AI query completions - Error states (this was huge for debugging) - Any action that cost us API credits - Feature upgrades or plan changes
Autocapture gives you the safety net. Custom events give you the clarity.
Use Google Sheets as your first data warehouse
This sounds absurd, but hear me out.
At Finvestfx, we had 20+ enterprise clients and needed to track adoption across different modules (forex, treasury management, compliance tools). I needed to see which clients were actually using which features, but I didn't have time to build dashboards for every stakeholder.
I used Mixpanel's API to pull event counts into Google Sheets every morning. One tab per client. Columns for each key feature. Conditional formatting to show red/yellow/green based on usage thresholds.
Was it elegant? No. Did it work? Absolutely. Our account managers could see at a glance which clients needed a check-in call. I could spot drop-offs in feature adoption within 24 hours.
The real win was speed. I built the first version in two hours. When stakeholders wanted a new metric, I added a column. No Jira ticket, no engineering sprint, no two-week wait.
Segment is worth it, even on the free tier
I resisted Segment for months because it felt like overkill. Then I tried to migrate analytics from Mixpanel to Amplitude at Sonic Linker and wanted to throw my laptop out the window.
Segment sits between your product and your analytics tools. You send events to Segment once, and it forwards them to Mixpanel, Amplitude, your CRM, whatever. When you want to add a new tool or switch vendors, you just toggle it in Segment's UI.
I set it up at my next gig in an afternoon. The free tier handles 1,000 monthly tracked users, which is more than enough for early-stage validation.
The underrated benefit: Segment forces you to standardize your event naming. When I was sending events directly to Mixpanel, I had "user_signup," "User Signed Up," and "signup_completed" as three different events. Segment's schema validation caught that immediately.
Track errors like your life depends on it
This isn't sexy, but it's the most important thing I did.
At Sonic Linker, I set up a Slack channel that pinged every time a user hit an error state. API timeout? Ping. AI query failed? Ping. Payment processing issue? Ping.
It was noisy at first. But within a week, I knew exactly which parts of our product were brittle. I could prioritize bug fixes based on frequency and user impact, not just whatever the loudest customer complained about.
I used Sentry for error tracking (free tier is generous) and connected it to Slack with a webhook. Total setup time: 30 minutes. Value: immeasurable.
What I'd do differently next time
If I were starting from scratch tomorrow, I'd add one thing: session recordings.
I used Hotjar at Finvestfx to watch how enterprise clients navigated our forex module. Seeing someone click the wrong button five times before finding what they needed taught me more than any heatmap or funnel chart.
The free tier gives you 35 recordings a day. Pick your most critical flow (signup, onboarding, core feature usage) and record every session. Watch 3-5 recordings a week. You'll spot UX issues you'd never catch in the data.
The real lesson: start before you're ready
I didn't know what I was doing when I set up analytics at Sonic Linker. I just knew we needed data before our first pilot started.
The stack I built wasn't perfect. But it was good enough to answer 90% of the questions that mattered. And because I kept it simple, I could iterate fast.
You don't need a data engineer. You need autocapture, a spreadsheet, and the discipline to check your dashboards every morning. The rest you can figure out as you go.