Observability for ikas apps.
See failed webhooks, slow Admin API calls, installs and admin web vitals for your ikas app. One small SDK, set up in five minutes.
Webhooks
Every delivery your app receives, with its status and handler time. See the retries ikas made and the webhooks it gave up on.
Admin API
Error rate and P90 latency for each GraphQL operation. A 200 response that carries an errors array counts as an error.
Installs and vitals
Installs, uninstalls and active stores, plus LCP, INP and CLS of your app inside the ikas admin.
Stores
Every store using your app, ranked by failures, with its status, last activity and last error. One click shows its events.
How it works
Four lines in the official ikas app starter. Each one records metadata about one part of your app, and your first events show up within seconds.
Prefer not to edit by hand? The setup page gives you one prompt for Claude Code or Cursor with your keys filled in.
import { createKanca } from "@kanca/ikas";
export const kanca = createKanca({ key: process.env.KANCA_KEY });
// 1. Webhook route
export const POST = kanca.webhook(handler);
// 2. OAuth callback
kanca.track("install", { merchantId, storeName });
// 3. Admin API client
return kanca.instrument(new ikasAdminGraphQLAPIClient(options));
// 4. Admin layout
<KancaVitals publicKey={process.env.NEXT_PUBLIC_KANCA_PUBLIC_KEY} />Privacy
Kanca records metadata only. For each event it keeps the type, name, status, duration, error code and merchant id.
It never receives webhook payloads, GraphQL queries, variables or responses, customer or order data, or your ikas credentials. The SDK never throws into your code and never changes a response.