Epure
Indie

Error tracking for indie hackers running production

error tracking for indie hackers

Solo production apps: DSN swap, two containers, no overage meter when the deploy breaks.

On this pageShow
  1. The invoice fear
  2. What I run alone
  3. Story beat
  4. Gotcha: dual identity in the SDK
  5. Gotcha: source maps on a solo release
  6. When to stay on a suite
  7. Startup vs solo
  8. Limits
  9. Friday checklist I keep in the repo README
  10. Money honesty for solos
  11. Variety note vs startups page
  12. Compare without twinning the startups page
  13. Partial compatibility reminder
  14. Takeaway
  15. Questions

This page is for solo founders and indie developers running a real production app: paying users, a deploy pipeline, and a pager that is usually just you. It is not a weekend side-project pep talk. Positioning on this site is lightweight self-hosted error tracking for SaaS, B2B teams, indie developers, and founders on real production. Solo is a team size, not a toy constraint.

The invoice fear

You already ship an official Sentry SDK. Developer is free for one user (confirm live error quota on sentry.io/pricing). That fits until a contractor needs access, or a deploy loops past the free month. Team is about $26 then pay-as-you-go (fetched 2026-10-05). The fear is not the base plan. The fear is the spike on the day the product breaks and you are the only person reading the stack.

What I run alone

I run Epure on a small VPS beside the app. Two Compose services: epure and postgres:16-alpine. docker compose up -d, wait for GET /health → {"status":"ok"}, create a project, paste the DSN, set traces/replay/profile sample rates to 0, send one exception, confirm HTTP 202 and an Issues row. Apache 2.0. No Redis in the OSS compose. Grouping is SHA-256 of exception type plus top in-app frame. Custom fingerprint overrides when two call sites are one bug.

Dated idle receipts live on Resource footprint. Link them. You still own pg_dump, image pins, and disk alerts. That is the trade for no vendor overage meter.

Story beat

A Friday deploy broke password reset. I was at a cafe with one laptop. Sentry Developer would have been fine on quiet days; the loop was not a quiet day. I had already pointed staging at Epure the week before. Production DSN swap took one env change and a restart. The issue title was the exception type. The count told me the blast radius. The stack had our frame. I patched, rolled forward, and went back to the queue. Nobody asked me to approve an overage.

Gotcha: dual identity in the SDK

Indie apps often share one Sentry init across web and API. When you swap only the web DSN and leave the API on a metered host with tracing enabled, you still get a bill surprise from the API. Swap every process that throws in production, or dual-send on purpose during a migrate week. Point the DSN. Migrate from Sentry.

Gotcha: source maps on a solo release

Your Vite or Next production build minifies to single-letter frames. Without maps for that release, Epure still stores the event, but grouping collapses. Upload maps for the release you ship. Sourcemaps. This is not optional polish for a solo production app with a real UI.

When to stay on a suite

Stay if you use session replay to support customers yourself, if you need mobile crash pipelines, or if you want Sentry's full product and will pay for it. Self-host Sentry only if you accept about 16 GB and a large compose; disclose COMPOSE_PROFILES=errors-only when arguing a smaller Sentry footprint. When error tracking is enough.

Startup vs solo

If you are 2-15 people with shared on-call, read Error tracking for startups. The product can be the same. The seat politics and alert routing differ. Solo pages should not pretend a five-person team is "indie" for SEO.

Limits

Epure does not replace your uptime checker, your logs, or your APM if you need those jobs. Cloud list prices are published and Cloud is not live. Self-host is what you can run tonight. Best free. Best self-hosted. Cheapest.

Friday checklist I keep in the repo README

docker compose -f docker-compose.yml -f deploy/docker-compose.prod.yml ps · curl -sS "$EPURE_PUBLIC_URL/health" · # expect {"status":"ok"}

Then open Issues, filter environment=production, sort by last seen. If the list is empty after a known throw, walk Events not showing before you blame the product. If ingest returns 401, walk Invalid DSN.

Money honesty for solos

A $0 Apache license is not a $0 life. Budget an hour a month for upgrades and a backup restore test. That hour is cheaper than an afternoon arguing with a metered invoice during an outage, for my apps. If you hate operating Postgres, you want a hosted product, and you should buy one that is actually live. Epure Cloud list prices are not a live purchase path as of 2026-10-05.

Variety note vs startups page

This essay opens on invoice fear and a cafe incident. The startups topic opens on team size and alert routing. Keep those shapes distinct when you edit either URL.

Compare without twinning the startups page

Startups care about who gets paged and whether seats are metered. Indies care about whether Friday alone is survivable. Same Epure binary. Different story. If you hire two engineers next quarter, reread the startups topic and decide if alert routing and shared triage change the host. Until then, optimize for one brain, one VPS, one Issues list, and a backup you have restored once.

Partial compatibility reminder

Pointing a Sentry SDK at Epure is envelope ingest for exceptions. It is not a claim that Sentry Cloud feature parity arrived on your VPS. Set unused sample rates to 0. Read Sentry SDK compatible if you need the honest matrix.

Takeaway

If you are the only person who will open the stack at 11pm, optimize for a boring box and a predictable bill. Two containers and a DSN swap are boring on purpose. Keep Sentry when the suite is how you support customers. Otherwise run the small host and spend the saved attention on the product.

FAQ

Questions

Is Epure only for side projects?
No. Positioning is real production apps for indie developers, founders, and SaaS/B2B teams. Solo is a team size.
Can one person run Epure?
Yes. Two containers, Postgres 16, Compose, health check, DSN swap. You own backups and upgrades.
Should indie hackers use Sentry Developer forever?
It fits a quiet solo trial. A second person or a crash loop ends the free shape. Confirm live quotas on Sentry pricing.
Do I need Cloud?
Cloud list prices exist and Cloud is not live as of 2026-10-05. Self-host is the available path.
What breaks first for solos?
Missing source maps on minified releases, and leaving tracing enabled on a process you forgot to re-point.