Skip to main content
Solo / Personal progress
intermediatePage 11 of 18

Phase 9: Observability (Minimal)

Three free tools — Sentry for errors, Vercel Analytics for traffic, PostHog for product analytics — cover almost all solo needs.

Phase 9: Observability (Minimal)

In one line: Errors in Sentry, traffic in Vercel Analytics, product behavior in PostHog. Free tiers. Set it up before you need it.

In plain English

"Observability" sounds intimidating but for a solo project it means three dashboards. Sentry tells you what broke. Vercel Analytics tells you who's visiting. PostHog tells you what they're doing. Set them up while it's still easy — debugging an outage when you have no telemetry is a special kind of misery.

The three-tool stack

Observability is the umbrella term for "knowing what your app is doing in production" — errors, traffic, performance, and user behavior. For a personal project, three tools cover almost all needs:

Sentry for Errors

bunx @sentry/wizard@latest -i nextjs

Wizard configures Sentry automatically. Now exceptions in your app show up in Sentry's dashboard with stack traces, breadcrumbs, and user context.

Vercel Analytics for Traffic

Free with Vercel. Shows page views, top pages, top referrers, and core web vitals. No setup needed beyond enabling it.

PostHog for Product Analytics (Optional)

If you want to know which features users actually use:

bun add posthog-js

Initialize in a client component and call posthog.capture('event_name', { ... }) when interesting things happen.

Uptime Monitoring (Optional)

Better Stack's free tier pings your homepage every 3 minutes. If it fails, you get an email.

That's enough until you have real users.

Worked example: a real bug detected by Sentry

A user reports "the page is broken." You ask which page. They say "the one with the books." You open Sentry → there's a single error from the last 24 hours: TypeError: Cannot read properties of undefined (reading 'title') in BookCard. Stack trace points to line 14. Breadcrumbs show they navigated to /library/share/abc123.

Total time from report to root cause: under a minute. Without Sentry: you'd ask them for their browser/OS, ask them to open DevTools, ask them to copy the stack trace, then maybe see something useful.

Highlight: set it up before you ship

Every solo developer who skips Sentry on day one regrets it the first time a real user hits a bug. The whole point of telemetry is that you only need it after something has already broken — at which point you can't add it retroactively. Five minutes now saves a debugging nightmare later.

Common mistakes

Where people commonly trip up
  • Wiring up Sentry but never opening the dashboard. Errors pile up unread in a tab you never check. The fix is the weekly maintenance window from the next chapter — block 15 minutes, scan Issues, triage one. A noisy dashboard isn't observability; a reviewed dashboard is.
  • Building a Grafana + Loki + Prometheus stack for a 10-user app. Self-hosting observability is fun, but you'll spend more time tending the dashboards than you do on the product. The fix is the three managed free tiers on this page — graduate to your own stack when (and only when) the free tiers stop fitting.
  • Logging PII into Sentry breadcrumbs. A console.log(user) in a hot path now ships every signed-in user's email to your error tracker — and possibly across borders, depending on the user. The fix is to scrub or hash anything sensitive before logging, and to enable Sentry's PII filters in the project settings.
  • Treating PostHog as analytics theater. You install it, fire a pageview event, and never look at it again. The fix is to define two or three funnels up front — signup, first action, first paid — and check them once a week. Vanity metrics like total events are useless; activation funnels actually change what you build.
  • Forgetting source-map upload. Sentry shows (anonymous) in main.abc123.js:1:84231 and the trace is useless. The fix is to let the Sentry wizard configure source-map upload during install — five minutes now, every future stack trace becomes readable.

Page checkpoint

Checkpoint Quiz

Did observability stick?

Required

What's next

→ Continue to Phase 10: Launching where we'll soft-launch to friends, Hacker News, and Indie Hackers.