One SDK for errors, traces, and traffic
By The Marsad teamThe typical production stack for a small team is an error tracker, a privacy-friendly analytics script, and whatever reports Web Vitals. Three scripts, three dashboards, three bills — and when something breaks, three tabs to correlate by hand.
The frustrating part is that they're all describing the same traffic. A spike in errors and a drop in conversions on the same route are one story told in two places.
One install, one key
Marsad is a single SDK. It auto-detects its runtime — browser, Node, or React Native — and installs the right integration. One init() call gets you unhandled errors and rejections, fetch and XHR capture, sessions and crash-free rate, Core Web Vitals, and cookieless page views.
import { init } from "@marsadco/sdk";
init({ key: process.env.NEXT_PUBLIC_MARSAD_KEY! });That's the whole setup. Errors are grouped into ranked issues with source-mapped stacks and the breadcrumbs that led there. Page views land on the Analytics page with referrers, campaigns, devices and countries. Web Vitals are broken out per page, so a bad LCP points at the route that owns it.
Opt in to more when you need it
Two things are deliberately off or manual, because they cost either volume or privacy:
- Tracing is off until you set tracesSampleRate. Turn it on and pageloads, navigations, and every request become a trace you can open as a waterfall.
- Screenshot-on-error is off by default and you supply the capture function, since a screenshot of a broken screen can contain anything.
Custom events are one call — track("checkout_completed", { plan: "team" }) — and they show up next to your traffic instead of in a fourth tool.
Same SDK on mobile: Expo and React Native get the JS errors, the network calls, and the feedback widget, with Hermes stacks symbolicated on our side.
Start watching your apps in minutes
Drop in the SDK and watch your first events arrive. Free plan, no credit card.
Start free