Skip to content
Codeskop

Codeskop documentation

Everything you need to add Codeskop to your app, understand what it captures, and get the most out of it.

Start here

Pick your platform. Each quick start takes about five minutes.

Android, Flutter, web, React and the server SDKs (Python, Node.js, Go, Java and PHP) are generally available. Kotlin Multiplatform (and iOS, which is built on the same SDK) are in early access beta.

What Codeskop captures

Codeskop is a small SDK you add to your app. Once it's initialized, most capture happens on its own; you don't annotate endpoints or wrap screens.

On mobile (Android and Flutter)

  • Crashes: uncaught JVM exceptions and native crashes, with the stack trace, thread, and device context.
  • ANRs: Application Not Responding freezes, reported by Android itself.
  • Network failures and latency: failing requests, status codes and timing from OkHttp and Retrofit, with the optional OkHttp adapter.
  • Handled exceptions: errors your app catches and reports with recordException.

On the web

  • JavaScript errors: uncaught errors and unhandled promise rejections.
  • Network failures and latency: every fetch and XMLHttpRequest call, automatically.
  • React render errors, with the error boundary from @codeskop/tracker-react.
  • Handled exceptions: errors you report with recordException.

Kotlin Multiplatform and iOS share the mobile SDK's core; see Kotlin Multiplatform & iOS for what the beta captures. The SDKs also send a lightweight presence heartbeat while your app is in the foreground, so the dashboard can show how many users are active.

How it fits together

Every event takes the same path from your user's device to your dashboard:

  1. Step 1

    SDK in your app

    Captures crashes, ANRs, errors and network calls, and redacts them on the device.

  2. Step 2

    On-device queue

    Events are stored locally first, so nothing is lost when the network drops.

  3. Step 3

    Codeskop ingest

    Batches are compressed and sent when there's a connection, then retried until accepted.

  4. Step 4

    Your dashboard

    Issues are grouped, counted and tied to the users, devices and releases they hit.

The SDK is built to stay out of your app's way. Setup runs off the main thread, public methods never throw, and calls made before initialization are safely ignored. Read more in Core concepts.

Privacy by default

Request and response bodies, query strings, and credential headers such as Authorization and Cookie never leave the device. See Privacy & Security for the full list.

Explore the docs

From the blog

All posts