> ## Documentation Index
> Fetch the complete documentation index at: https://sentrydocs.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK Overview

> Choose and install the right Sentry SDK for your platform

Sentry SDKs integrate directly into your application and capture errors, performance data, session replays, and profiles. When an event occurs, the SDK serializes it and sends it to Sentry via your project DSN.

## What SDKs capture

* **Errors and exceptions** — unhandled crashes and manually captured errors
* **Performance traces** — transactions, spans, and distributed traces across services
* **Session replays** — video-like recordings of user sessions (browser SDKs)
* **Profiles** — CPU and memory flamegraphs tied to transactions
* **Breadcrumbs** — a trail of events leading up to an error (clicks, navigation, requests)

## Common configuration options

Every Sentry SDK shares a core set of configuration options regardless of language or framework.

| Option                     | Type     | Description                                                       |
| -------------------------- | -------- | ----------------------------------------------------------------- |
| `dsn`                      | string   | Your project's Data Source Name. Required.                        |
| `environment`              | string   | Logical environment name, e.g. `"production"` or `"staging"`.     |
| `release`                  | string   | Version string for your app, e.g. `"my-app@1.0.0"`.               |
| `sampleRate`               | float    | Fraction of error events to send. `1.0` sends all errors.         |
| `tracesSampleRate`         | float    | Fraction of transactions to send for performance monitoring.      |
| `profilesSampleRate`       | float    | Fraction of profiled transactions. Requires `tracesSampleRate`.   |
| `replaysSessionSampleRate` | float    | Fraction of sessions to record as replays.                        |
| `replaysOnErrorSampleRate` | float    | Fraction of sessions to record when an error occurs.              |
| `debug`                    | boolean  | Enable verbose SDK logging to the console.                        |
| `beforeSend`               | function | Callback to inspect, modify, or drop events before they are sent. |

<Note>
  `sampleRate`, `tracesSampleRate`, and the other rate options accept values between `0.0` (send nothing) and `1.0` (send everything). Start with `1.0` during development and reduce in production if volume is a concern.
</Note>

## Available SDKs

<CardGroup cols={2}>
  <Card title="JavaScript / TypeScript" icon="js" href="/sdk/javascript">
    Browser, Node.js, React, Next.js, Vue, Angular, Svelte, SvelteKit, Remix, Astro, Ember, and more.
  </Card>

  <Card title="Python" icon="python" href="/sdk/python">
    Django, Flask, FastAPI, Celery, SQLAlchemy, AIOHTTP, Starlette, and more.
  </Card>

  <Card title="Java / Kotlin" icon="java" href="/sdk/java">
    Plain Java, Kotlin, Spring Boot, Android (via sentry-android).
  </Card>

  <Card title="Mobile" icon="mobile" href="/sdk/mobile">
    iOS (Swift / Objective-C), Android (Java / Kotlin), and React Native.
  </Card>

  <Card title="Go" icon="code" href="https://docs.sentry.io/platforms/go/">
    Native Go SDK with integrations for Gin, Echo, Iris, and more.
  </Card>

  <Card title="Ruby" icon="gem" href="https://docs.sentry.io/platforms/ruby/">
    Rails, Sidekiq, Delayed::Job, and Rack.
  </Card>

  <Card title="PHP" icon="php" href="https://docs.sentry.io/platforms/php/">
    Laravel, Symfony, and plain PHP.
  </Card>

  <Card title=".NET" icon="microsoft" href="https://docs.sentry.io/platforms/dotnet/">
    ASP.NET Core, Blazor, MAUI, WPF, Unity, and more.
  </Card>

  <Card title="Rust" icon="code" href="https://docs.sentry.io/platforms/rust/">
    Native Rust applications with `sentry` crate.
  </Card>

  <Card title="Dart / Flutter" icon="code" href="https://docs.sentry.io/platforms/flutter/">
    Flutter apps for Android, iOS, Web, and Desktop.
  </Card>
</CardGroup>

## Quick setup pattern

All SDKs follow the same basic setup pattern:

<Steps>
  <Step title="Install the package">
    Add the Sentry SDK for your language or framework using your package manager.
  </Step>

  <Step title="Call init early">
    Initialize Sentry as early as possible in your application's startup — before any other code runs. This ensures errors during startup are captured.
  </Step>

  <Step title="Set environment and release">
    Pass `environment` and `release` so you can filter events in Sentry and track which version introduced a bug.
  </Step>

  <Step title="Verify the integration">
    Throw a test exception to confirm events appear in your Sentry project.
  </Step>
</Steps>
