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

CapabilityWhat it does
Error trackingCaptures unhandled exceptions and promise rejections automatically, plus manual captureError() calls with full context
Analytics eventscaptureEvent() records product actions — signups, button clicks, checkout steps — with typed properties and tags
Feature flagsevaluateFlags() evaluates flags server-side and logs exposures so you can analyze flag impact alongside other events
SessionsGroups 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 environmentPackage
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