Introduction
Emit Vision gives your team a single SDK to capture errors, user events, feature flag evaluations, and session data — all in a self-hosted platform you control. No third-party analytics vendor stores your users' data.
What you can track
| Capability | What it does |
|---|---|
| Error tracking | Captures unhandled exceptions and promise rejections automatically, plus manual captureError() calls with full context |
| Analytics events | captureEvent() records product actions — signups, button clicks, checkout steps — with typed properties and tags |
| Feature flags | evaluateFlags() evaluates flags server-side and logs exposures so you can analyze flag impact alongside other events |
| Sessions | Groups events from a single browser or worker session into a timeline you can replay and filter |
Choosing the right SDK
Pick the package that matches where you're running code:
| Your environment | Package |
|---|---|
| Vanilla JS, Svelte, Vue, any browser app | @emit-vision/sdk-js |
| React (CRA, Vite, non-Next.js) | @emit-vision/sdk-react |
| Next.js App Router | @emit-vision/sdk-next |
| Node.js servers and background workers | @emit-vision/sdk-node |
You can use multiple packages in the same project. A Next.js app that also runs a Node.js job queue would use @emit-vision/sdk-next in the web layer and @emit-vision/sdk-node in the worker.
The React and Next.js packages are thin wrappers around sdk-js. They share the same ingest contract, so events, errors, and sessions from all packages appear in the same dashboard views.
How data flows
Your app → SDK (batch + queue) → POST /v1/ingest → API → Storage
↓
Dashboard queries
The SDK batches events in memory and flushes them on an interval (default 5 s) or when the batch reaches a size threshold (default 20 items). You can call flush() manually before navigation or shutdown.
Let an agent get you set up. If you use Claude Code, the init-emit-sdk
skill detects your framework, installs the right package, and wires up the
boilerplate automatically. See AI-Assisted Setup for
instructions.
Ready to send your first event? Jump to Quick Start — you'll have data in the dashboard in under 10 minutes.
Next steps
- Quick Start — first event in under 10 minutes
- Installation — full setup guide for each SDK
- Core Concepts — how sessions, events, errors, and releases relate