One package for any front-end — React, Vue, Angular, Svelte, or plain JS. It hooks global errors and unhandled rejections, and ships a React error boundary for component-tree failures.
npm install @errorgap/browserOr drop it in via CDN — the UMD build exposes window.Errorgap:
<script src="https://cdn.jsdelivr.net/npm/@errorgap/browser"></script>Import as early as possible in your entry point. The API key is public client-side, so scope it to a single project and rely on server-side redaction for anything sensitive.
import { Errorgap } from "@errorgap/browser";
Errorgap.init({
endpoint: "https://your-endpoint",
projectSlug: "your-project",
apiKey: import.meta.env.VITE_ERRORGAP_API_KEY,
environment: import.meta.env.MODE,
release: __APP_VERSION__,
});init hooks window.error and window.unhandledrejection automatically.
import { ErrorgapBoundary } from "@errorgap/browser/react";
export function App() {
return (
<ErrorgapBoundary fallback={<p>Something went wrong.</p>}>
<Routes />
</ErrorgapBoundary>
);
}Throw once — in React, wire it to a temporary button:
throw new Error("Errorgap test error");Confirm your key and endpoint reach errorgap before wiring anything else — send one event straight to the ingestion API:
curl -sS -X POST "$ERRORGAP_ENDPOINT/api/projects/$ERRORGAP_PROJECT_SLUG/notices" \
-H "content-type: application/json" \
-H "x-errorgap-project-key: $ERRORGAP_API_KEY" \
-d '{"errors":[{"type":"ErrorgapInstallTest","message":"Errorgap install verification"}]}'A 201 with a group_id means ingestion works (202 = received but sampled; 401 = wrong key). Then trigger the test error above through the SDK. Your onboarding screen's Verify step checks the stack off automatically once the first event lands — it polls every three seconds.
Next: the full ingestion API, or browse every SDK.