Open source · MIT licensed

See what breaks for your users

TraceForge catches the JavaScript errors, failing API calls and slow pages your users hit in production, groups them into issues, and shows you which ones matter.

npm install @traceforge/sdk
The TraceForge overview: error, API failure and user counts, Core Web Vitals, an error trend chart and the top issues
9 KBSDK, minified and compressed
0runtime dependencies
p75the Web Vitals standard percentile
MITopen source, self-hostable

What failed, where, how often, and who it hit

Frontend bugs rarely reproduce on your machine. TraceForge shows you what real users ran into, grouped so you can fix the ones that matter first.

  • Issues, not noise
    Identical errors group into one issue across deploys, with occurrences, affected users, the stack trace, and browser and page breakdowns.
  • API performance
    Every fetch your frontend makes, per endpoint: requests, error rate, average and p95 latency, status codes and recent failures.
  • Core Web Vitals
    LCP, INP, CLS, FCP and TTFB at p75 from real visits, rated against Google's thresholds, with the slowest routes called out.
  • Live events
    Watch errors, requests and vitals stream in as they happen, and jump straight to the issue.
  • A 9 KB SDK
    No dependencies. Batches, compresses and retries in the background, delivers when the tab closes, and never throws into your app.
  • Private by default
    Technical context only. No input values, cookies, headers or request bodies, and query strings are redacted in the browser.

Three moments TraceForge is built for

Not another chart to check — the thing you reach for when something's actually wrong.

  • You just shipped.

    Something broke after a deploy
    Tag the release, and its events, issues and affected users show up on their own page. If error volume spikes right after, you'll know before support tickets pile up — and a webhook can tell you the moment it happens.
  • It works on your machine.

    A user reports a bug you can't reproduce
    Open the issue and see the exact stack trace, browser, OS, device and page it happened on — plus how many other users hit the same one, grouped by fingerprint across every deploy.
  • No one's complained yet.

    Is the app getting slower?
    LCP, INP and CLS at p75, by route, from real visits — not a lab test. Catch a regression while it's a chart, not a support queue.

Set up in two minutes

Works with Next.js, React, and any site that can load a script.

  1. Install the SDK

    One package, no dependencies.

    Terminal
    npm install @traceforge/sdk
  2. Initialize it with your DSN

    Create a project to get a DSN. It can only send events, so it's safe in frontend code.

    instrumentation-client.ts
    // instrumentation-client.ts (Next.js) or main.tsx (React)
    import { init } from "@traceforge/sdk"
    
    init({
      dsn: process.env.NEXT_PUBLIC_TRACEFORGE_DSN!,
      environment: "production",
    })
  3. Watch real sessions arrive

    Errors, failing and slow requests, and Web Vitals show up in the dashboard within seconds. Nothing else to wire up.

Why open source

Most frontend observability tools are closed-source SaaS with per-event pricing. TraceForge is code you can read, run anywhere, and never outgrow a free tier on.

TraceForge

  • MIT licensed — read every line, fork it, change it
  • Self-host on your own infrastructure, or use the hosted instance
  • Your events live in your Postgres database
  • Free, with no per-event or per-seat pricing

A typical hosted tool

  • Closed source
  • Hosted only, or self-hosting locked behind an enterprise plan
  • Your data lives in the vendor's database
  • Free tier caps events, then a paid plan

Your users stay anonymous

TraceForge collects the technical context needed to debug, and nothing else. The defaults are the private ones.

Collected

  • Error name, message and stack trace
  • Request method, redacted URL, status and duration
  • Web Vitals and page-load timing
  • Route changes (paths only)
  • Browser, OS and device type, viewport, language
  • A random per-tab session id

Never collected

  • Input values or form contents
  • Passwords, cookies or Authorization headers
  • Request or response bodies
  • localStorage contents
  • Query-string values (redacted in the browser)
  • Any personal data, unless you opt in to an anonymous id

Questions

Anything else, the guide or the source will have an answer.

Find out what your users are running into

Create a project, paste one line into your app, and see real sessions within minutes.

Get started free