diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b377ed520b4064..32a8e475c89cb8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,7 +12,7 @@ # /src/wizard/android/ @getsentry/team-mobile-core # /src/platforms/apple/ @getsentry/team-mobile-core # /src/wizard/apple/ @getsentry/team-mobile-core -# /src/platforms/flutter/ @getsentry/team-mobile-cross-platform +# /src/platforms/dart/guides/flutter/ @getsentry/team-mobile-cross-platform # /src/wizard/flutter/ @getsentry/team-mobile-cross-platform # /src/platforms/dart/ @getsentry/team-mobile-cross-platform # /src/wizard/dart/ @getsentry/team-mobile-cross-platform diff --git a/docs/platforms/dart/configuration/releases.mdx b/docs/platforms/dart/configuration/releases.mdx index b0dc4726a7f5ab..bb35de060c9896 100644 --- a/docs/platforms/dart/configuration/releases.mdx +++ b/docs/platforms/dart/configuration/releases.mdx @@ -62,7 +62,7 @@ After configuring your SDK, you can install a repository integration or manually -Looking for Flutter release health? [See the Flutter documentation](/platforms/flutter/configuration/releases/#release-health). +Looking for Flutter release health? [See the Flutter documentation](/platforms/dart/guides/flutter/configuration/releases/#release-health). diff --git a/docs/platforms/flutter/configuration/draining.mdx b/docs/platforms/dart/guides/flutter/configuration/draining.mdx similarity index 100% rename from docs/platforms/flutter/configuration/draining.mdx rename to docs/platforms/dart/guides/flutter/configuration/draining.mdx diff --git a/docs/platforms/flutter/configuration/environments.mdx b/docs/platforms/dart/guides/flutter/configuration/environments.mdx similarity index 100% rename from docs/platforms/flutter/configuration/environments.mdx rename to docs/platforms/dart/guides/flutter/configuration/environments.mdx diff --git a/docs/platforms/flutter/configuration/filtering.mdx b/docs/platforms/dart/guides/flutter/configuration/filtering.mdx similarity index 100% rename from docs/platforms/flutter/configuration/filtering.mdx rename to docs/platforms/dart/guides/flutter/configuration/filtering.mdx diff --git a/docs/platforms/flutter/configuration/index.mdx b/docs/platforms/dart/guides/flutter/configuration/index.mdx similarity index 100% rename from docs/platforms/flutter/configuration/index.mdx rename to docs/platforms/dart/guides/flutter/configuration/index.mdx diff --git a/docs/platforms/flutter/configuration/options.mdx b/docs/platforms/dart/guides/flutter/configuration/options.mdx similarity index 99% rename from docs/platforms/flutter/configuration/options.mdx rename to docs/platforms/dart/guides/flutter/configuration/options.mdx index b5e0b7c23c8d69..4b5af90d511b13 100644 --- a/docs/platforms/flutter/configuration/options.mdx +++ b/docs/platforms/dart/guides/flutter/configuration/options.mdx @@ -280,7 +280,7 @@ An optional property that configures which features are in experimental mode. Th Set this boolean to `false` to disable the auto initialization of the native layer SDK. Doing so means you will need to initialize the native SDK manually. Do not use this to disable the native layer. -You should follow the [guide to native initialization](/platforms/flutter/native-init/) if you chose to use this option. +You should follow the [guide to native initialization](/platforms/dart/guides/flutter/native-init/) if you chose to use this option. diff --git a/docs/platforms/flutter/configuration/releases.mdx b/docs/platforms/dart/guides/flutter/configuration/releases.mdx similarity index 100% rename from docs/platforms/flutter/configuration/releases.mdx rename to docs/platforms/dart/guides/flutter/configuration/releases.mdx diff --git a/docs/platforms/flutter/configuration/rewriteframes.mdx b/docs/platforms/dart/guides/flutter/configuration/rewriteframes.mdx similarity index 100% rename from docs/platforms/flutter/configuration/rewriteframes.mdx rename to docs/platforms/dart/guides/flutter/configuration/rewriteframes.mdx diff --git a/docs/platforms/flutter/configuration/sampling.mdx b/docs/platforms/dart/guides/flutter/configuration/sampling.mdx similarity index 100% rename from docs/platforms/flutter/configuration/sampling.mdx rename to docs/platforms/dart/guides/flutter/configuration/sampling.mdx diff --git a/docs/platforms/flutter/configuration/webview.mdx b/docs/platforms/dart/guides/flutter/configuration/webview.mdx similarity index 96% rename from docs/platforms/flutter/configuration/webview.mdx rename to docs/platforms/dart/guides/flutter/configuration/webview.mdx index 90d6deed49cd11..e089d659ea2f89 100644 --- a/docs/platforms/flutter/configuration/webview.mdx +++ b/docs/platforms/dart/guides/flutter/configuration/webview.mdx @@ -7,7 +7,7 @@ To monitor errors and performance in web views of Flutter applications, you need ## Application Monitoring -The Sentry Flutter SDK doesn't interact with the mobile application's web views. To monitor errors and performance in the Flutter part of the application follow the [Sentry Flutter SDK setup instructions](/platforms/flutter/). +The Sentry Flutter SDK doesn't interact with the mobile application's web views. To monitor errors and performance in the Flutter part of the application follow the [Sentry Flutter SDK setup instructions](/platforms/dart/guides/flutter/). ## WebView Monitoring diff --git a/docs/platforms/flutter/data-management/apple-privacy-manifest.mdx b/docs/platforms/dart/guides/flutter/data-management/apple-privacy-manifest.mdx similarity index 100% rename from docs/platforms/flutter/data-management/apple-privacy-manifest.mdx rename to docs/platforms/dart/guides/flutter/data-management/apple-privacy-manifest.mdx diff --git a/docs/platforms/flutter/data-management/data-collected.mdx b/docs/platforms/dart/guides/flutter/data-management/data-collected.mdx similarity index 100% rename from docs/platforms/flutter/data-management/data-collected.mdx rename to docs/platforms/dart/guides/flutter/data-management/data-collected.mdx diff --git a/docs/platforms/flutter/data-management/debug-files/file-formats/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/file-formats/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/file-formats/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/file-formats/index.mdx diff --git a/docs/platforms/flutter/data-management/debug-files/identifiers/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/identifiers/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/identifiers/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/identifiers/index.mdx diff --git a/docs/platforms/flutter/data-management/debug-files/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/index.mdx diff --git a/docs/platforms/flutter/data-management/debug-files/source-context/img/source-context-screenshot.png b/docs/platforms/dart/guides/flutter/data-management/debug-files/source-context/img/source-context-screenshot.png similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/source-context/img/source-context-screenshot.png rename to docs/platforms/dart/guides/flutter/data-management/debug-files/source-context/img/source-context-screenshot.png diff --git a/docs/platforms/flutter/data-management/debug-files/source-context/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/source-context/index.mdx similarity index 91% rename from docs/platforms/flutter/data-management/debug-files/source-context/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/source-context/index.mdx index df195309dc364a..bf858d2c11b271 100644 --- a/docs/platforms/flutter/data-management/debug-files/source-context/index.mdx +++ b/docs/platforms/dart/guides/flutter/data-management/debug-files/source-context/index.mdx @@ -22,7 +22,7 @@ See [Creating Source Bundles](/cli/dif/#creating-source-bundles) for more inform -For Flutter Android, iOS, and macOS, follow the instructions in the [Debug Symbols](/platforms/flutter/upload-debug/#uploading-source-code-context-for-flutter-android-ios-and-macos) guide. +For Flutter Android, iOS, and macOS, follow the instructions in the [Debug Symbols](/platforms/dart/guides/flutter/upload-debug/#uploading-source-code-context-for-flutter-android-ios-and-macos) guide. diff --git a/docs/platforms/flutter/data-management/debug-files/symbol-servers/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/symbol-servers/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/symbol-servers/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/symbol-servers/index.mdx diff --git a/docs/platforms/flutter/data-management/debug-files/upload/index.mdx b/docs/platforms/dart/guides/flutter/data-management/debug-files/upload/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/debug-files/upload/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/debug-files/upload/index.mdx diff --git a/docs/platforms/flutter/data-management/index.mdx b/docs/platforms/dart/guides/flutter/data-management/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/index.mdx diff --git a/docs/platforms/flutter/data-management/sensitive-data/index.mdx b/docs/platforms/dart/guides/flutter/data-management/sensitive-data/index.mdx similarity index 100% rename from docs/platforms/flutter/data-management/sensitive-data/index.mdx rename to docs/platforms/dart/guides/flutter/data-management/sensitive-data/index.mdx diff --git a/docs/platforms/flutter/enriching-events/attachments/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/attachments/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/attachments/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/attachments/index.mdx diff --git a/docs/platforms/flutter/enriching-events/breadcrumbs/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/breadcrumbs/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/breadcrumbs/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/breadcrumbs/index.mdx diff --git a/docs/platforms/flutter/enriching-events/context/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/context/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/context/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/context/index.mdx diff --git a/docs/platforms/flutter/enriching-events/identify-user/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/identify-user/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/identify-user/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/identify-user/index.mdx diff --git a/docs/platforms/flutter/enriching-events/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/index.mdx diff --git a/docs/platforms/flutter/enriching-events/scopes/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/scopes/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/scopes/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/scopes/index.mdx diff --git a/docs/platforms/flutter/enriching-events/screenshots/img/screenshot-list-example.png b/docs/platforms/dart/guides/flutter/enriching-events/screenshots/img/screenshot-list-example.png similarity index 100% rename from docs/platforms/flutter/enriching-events/screenshots/img/screenshot-list-example.png rename to docs/platforms/dart/guides/flutter/enriching-events/screenshots/img/screenshot-list-example.png diff --git a/docs/platforms/flutter/enriching-events/screenshots/img/screenshot-thumbnail.png b/docs/platforms/dart/guides/flutter/enriching-events/screenshots/img/screenshot-thumbnail.png similarity index 100% rename from docs/platforms/flutter/enriching-events/screenshots/img/screenshot-thumbnail.png rename to docs/platforms/dart/guides/flutter/enriching-events/screenshots/img/screenshot-thumbnail.png diff --git a/docs/platforms/flutter/enriching-events/screenshots/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/screenshots/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/screenshots/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/screenshots/index.mdx diff --git a/docs/platforms/flutter/enriching-events/tags/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/tags/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/tags/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/tags/index.mdx diff --git a/docs/platforms/flutter/enriching-events/transaction-name/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/transaction-name/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/transaction-name/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/transaction-name/index.mdx diff --git a/docs/platforms/flutter/enriching-events/viewhierarchy/index.mdx b/docs/platforms/dart/guides/flutter/enriching-events/viewhierarchy/index.mdx similarity index 100% rename from docs/platforms/flutter/enriching-events/viewhierarchy/index.mdx rename to docs/platforms/dart/guides/flutter/enriching-events/viewhierarchy/index.mdx diff --git a/docs/platforms/flutter/features/index.mdx b/docs/platforms/dart/guides/flutter/features/index.mdx similarity index 100% rename from docs/platforms/flutter/features/index.mdx rename to docs/platforms/dart/guides/flutter/features/index.mdx diff --git a/docs/platforms/flutter/index.mdx b/docs/platforms/dart/guides/flutter/index.mdx similarity index 95% rename from docs/platforms/flutter/index.mdx rename to docs/platforms/dart/guides/flutter/index.mdx index 7236fc90bbe637..131e25398cfc8e 100644 --- a/docs/platforms/flutter/index.mdx +++ b/docs/platforms/dart/guides/flutter/index.mdx @@ -47,7 +47,8 @@ brew install getsentry/tools/sentry-wizard && sentry-wizard -i flutter npx @sentry/wizard@latest -i flutter ``` -[Sentry Wizard](https://github.com/getsentry/sentry-wizard) will patch your project accordingly, though you can [set up manually](/platforms/flutter/manual-setup/) if you prefer. You only need to patch the project once. Then you can add the patched files to your version control system. +[Sentry Wizard](https://github.com/getsentry/sentry-wizard) will patch your project accordingly, though you can [set up manually](/platforms/dart/guides/flutter/manual-setup/) if you prefer. You only need to patch the project once. Then you can add the patched files to your version control system. + @@ -77,7 +78,7 @@ Future main() async { // Note: Profiling alpha is available for iOS and macOS since SDK version 7.12.0 options.profilesSampleRate = 1.0; // Adds request headers and IP for users, - // visit: https://docs.sentry.io/platforms/flutter/data-management/data-collected/ for more info + // visit: https://docs.sentry.io/platforms/dart/guides/flutter/data-management/data-collected/ for more info options.sendDefaultPii = true; }, appRunner: () => runApp( diff --git a/docs/platforms/flutter/integrations/app-start-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/app-start-instrumentation.mdx similarity index 94% rename from docs/platforms/flutter/integrations/app-start-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/app-start-instrumentation.mdx index c4654a5059cc61..451123ef0253d2 100644 --- a/docs/platforms/flutter/integrations/app-start-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/app-start-instrumentation.mdx @@ -37,8 +37,8 @@ While the SDK differentiates between cold and warm starts, it doesn't track hot Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure) -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure) +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Configure diff --git a/docs/platforms/flutter/integrations/asset-bundle-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/asset-bundle-instrumentation.mdx similarity index 94% rename from docs/platforms/flutter/integrations/asset-bundle-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/asset-bundle-instrumentation.mdx index 2a0a7cad75eb64..ac65d08c5c10de 100644 --- a/docs/platforms/flutter/integrations/asset-bundle-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/asset-bundle-instrumentation.mdx @@ -21,8 +21,8 @@ The instrumentation starts a span from an active transaction that's bound to the Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Configure diff --git a/docs/platforms/flutter/integrations/drift-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/drift-instrumentation.mdx similarity index 95% rename from docs/platforms/flutter/integrations/drift-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/drift-instrumentation.mdx index 768a80ad49e2a7..faf4d7645e5446 100644 --- a/docs/platforms/flutter/integrations/drift-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/drift-instrumentation.mdx @@ -23,8 +23,8 @@ The created spans will be attached to the transaction on the scope - if no trans Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Install diff --git a/docs/platforms/flutter/integrations/hive-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/hive-instrumentation.mdx similarity index 94% rename from docs/platforms/flutter/integrations/hive-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/hive-instrumentation.mdx index af5f70d65be2e9..2a295ed74d7ee7 100644 --- a/docs/platforms/flutter/integrations/hive-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/hive-instrumentation.mdx @@ -23,8 +23,8 @@ The created spans will be attached to the transaction on the scope - if no trans Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Install diff --git a/docs/platforms/flutter/integrations/index.mdx b/docs/platforms/dart/guides/flutter/integrations/index.mdx similarity index 100% rename from docs/platforms/flutter/integrations/index.mdx rename to docs/platforms/dart/guides/flutter/integrations/index.mdx diff --git a/docs/platforms/flutter/integrations/isar-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/isar-instrumentation.mdx similarity index 95% rename from docs/platforms/flutter/integrations/isar-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/isar-instrumentation.mdx index 617ecb2b5debdd..9c20ff73efcd83 100644 --- a/docs/platforms/flutter/integrations/isar-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/isar-instrumentation.mdx @@ -23,8 +23,8 @@ The created spans will be attached to the transaction on the scope. If no transa Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Install diff --git a/docs/platforms/flutter/integrations/routing-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/routing-instrumentation.mdx similarity index 98% rename from docs/platforms/flutter/integrations/routing-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/routing-instrumentation.mdx index c7103143a8de7d..567be69e7c9eff 100644 --- a/docs/platforms/flutter/integrations/routing-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/routing-instrumentation.mdx @@ -21,8 +21,8 @@ The routing instrumentation feature is shipped with Sentry's Flutter SDK automat Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Configure diff --git a/docs/platforms/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx similarity index 95% rename from docs/platforms/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx index 112887b3b771b1..3d1076a9ca1fde 100644 --- a/docs/platforms/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/slow-and-frozen-frames-instrumentation.mdx @@ -28,8 +28,8 @@ Frame duration tracking begins automatically when a span starts. The integration Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Configure diff --git a/docs/platforms/flutter/integrations/sqflite-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/sqflite-instrumentation.mdx similarity index 97% rename from docs/platforms/flutter/integrations/sqflite-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/sqflite-instrumentation.mdx index e3379ed53aec1d..c154427cb91b75 100644 --- a/docs/platforms/flutter/integrations/sqflite-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/sqflite-instrumentation.mdx @@ -23,8 +23,8 @@ The [sentry_sqflite](https://pub.dev/packages/sentry_sqflite) package provides ` Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Install diff --git a/docs/platforms/flutter/integrations/user-interaction-instrumentation.mdx b/docs/platforms/dart/guides/flutter/integrations/user-interaction-instrumentation.mdx similarity index 92% rename from docs/platforms/flutter/integrations/user-interaction-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/integrations/user-interaction-instrumentation.mdx index b10dd01c3e4f6e..767cbd38cc3bc6 100644 --- a/docs/platforms/flutter/integrations/user-interaction-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/integrations/user-interaction-instrumentation.mdx @@ -18,14 +18,14 @@ Before diving into the configuration, it's important to understand how user inte - The instrumentation sets the transaction name specified in the `key` of the `Widget` from the `key` of the `Widget`, for example `login_button`. - The transaction operation is set to `ui.action.click`. -- If the user interaction transaction has reached the [idleTimeout](/platforms/flutter/configuration/options/#idle-timeout), but didn't have any child spans added, it will be dropped. +- If the user interaction transaction has reached the [idleTimeout](/platforms/dart/guides/flutter/configuration/options/#idle-timeout), but didn't have any child spans added, it will be dropped. ## Prerequisites Before starting, ensure: -1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/flutter/#configure). -2. Tracing is set up. Learn more [here](/platforms/flutter/tracing/). +1. The Sentry Flutter SDK is initialized. Learn more [here](/platforms/dart/guides/flutter/#configure). +2. Tracing is set up. Learn more [here](/platforms/dart/guides/flutter/tracing/). ## Configure @@ -132,7 +132,7 @@ Future main() async { ### Transaction Timeout -The transaction finishes automatically after it reaches the specified [idleTimeout](/platforms/flutter/configuration/options/#idle-timeout) and all of its child spans are finished. +The transaction finishes automatically after it reaches the specified [idleTimeout](/platforms/dart/guides/flutter/configuration/options/#idle-timeout) and all of its child spans are finished. The `idleTimeoout` defaults to `3000` milliseconds (3 seconds). #### Disable Timeout diff --git a/docs/platforms/flutter/manual-setup.mdx b/docs/platforms/dart/guides/flutter/manual-setup.mdx similarity index 94% rename from docs/platforms/flutter/manual-setup.mdx rename to docs/platforms/dart/guides/flutter/manual-setup.mdx index 6e9c95bcb577ec..33c9450fb3338d 100644 --- a/docs/platforms/flutter/manual-setup.mdx +++ b/docs/platforms/dart/guides/flutter/manual-setup.mdx @@ -4,7 +4,7 @@ sidebar_order: 1 description: "Learn how to set up the SDK manually." --- -If you can't (or prefer not to) run the [automatic setup](/platforms/flutter/#install), you can follow the instructions below to configure your application manually. +If you can't (or prefer not to) run the [automatic setup](/platforms/dart/guides/flutter/#install), you can follow the instructions below to configure your application manually. ## Install @@ -43,7 +43,7 @@ Future main() async { // Note: Profiling alpha is available for iOS and macOS since SDK version 7.12.0 options.profilesSampleRate = 1.0; // Adds request headers and IP for users, - // visit: https://docs.sentry.io/platforms/flutter/data-management/data-collected/ for more info + // visit: https://docs.sentry.io/platforms/dart/guides/flutter/data-management/data-collected/ for more info options.sendDefaultPii = true; }, appRunner: () => runApp( diff --git a/docs/platforms/flutter/metrics/index.mdx b/docs/platforms/dart/guides/flutter/metrics/index.mdx similarity index 100% rename from docs/platforms/flutter/metrics/index.mdx rename to docs/platforms/dart/guides/flutter/metrics/index.mdx diff --git a/docs/platforms/flutter/migration.mdx b/docs/platforms/dart/guides/flutter/migration.mdx similarity index 100% rename from docs/platforms/flutter/migration.mdx rename to docs/platforms/dart/guides/flutter/migration.mdx diff --git a/docs/platforms/flutter/native-init.mdx b/docs/platforms/dart/guides/flutter/native-init.mdx similarity index 89% rename from docs/platforms/flutter/native-init.mdx rename to docs/platforms/dart/guides/flutter/native-init.mdx index 73e15df76c89fc..d8172404f62cd2 100644 --- a/docs/platforms/flutter/native-init.mdx +++ b/docs/platforms/dart/guides/flutter/native-init.mdx @@ -6,7 +6,7 @@ sidebar_order: 12 By default, the Flutter SDK initializes the native SDK underneath the `init` method called on the Flutter layer. As a result, the SDK currently has a limitation of not capturing native crashes that occur prior to the `init` method being called on the Flutter layer. You can initialize the native SDKs yourself to overcome this limitation or if you want to provide custom options above what the Flutter SDK currently provides. -To do this, set [autoInitializeNativeSdk](/platforms/flutter/configuration/options/#autoInitializeNativeSdk) to `false` in the init options: +To do this, set [autoInitializeNativeSdk](/platforms/dart/guides/flutter/configuration/options/#autoInitializeNativeSdk) to `false` in the init options: ```dart diff --git a/docs/platforms/flutter/overhead/index.mdx b/docs/platforms/dart/guides/flutter/overhead/index.mdx similarity index 100% rename from docs/platforms/flutter/overhead/index.mdx rename to docs/platforms/dart/guides/flutter/overhead/index.mdx diff --git a/docs/platforms/flutter/profiling/index.mdx b/docs/platforms/dart/guides/flutter/profiling/index.mdx similarity index 100% rename from docs/platforms/flutter/profiling/index.mdx rename to docs/platforms/dart/guides/flutter/profiling/index.mdx diff --git a/docs/platforms/flutter/profiling/troubleshooting/index.mdx b/docs/platforms/dart/guides/flutter/profiling/troubleshooting/index.mdx similarity index 100% rename from docs/platforms/flutter/profiling/troubleshooting/index.mdx rename to docs/platforms/dart/guides/flutter/profiling/troubleshooting/index.mdx diff --git a/docs/platforms/flutter/releases/index.mdx b/docs/platforms/dart/guides/flutter/releases/index.mdx similarity index 100% rename from docs/platforms/flutter/releases/index.mdx rename to docs/platforms/dart/guides/flutter/releases/index.mdx diff --git a/docs/platforms/flutter/session-replay/index.mdx b/docs/platforms/dart/guides/flutter/session-replay/index.mdx similarity index 100% rename from docs/platforms/flutter/session-replay/index.mdx rename to docs/platforms/dart/guides/flutter/session-replay/index.mdx diff --git a/docs/platforms/flutter/tracing/index.mdx b/docs/platforms/dart/guides/flutter/tracing/index.mdx similarity index 100% rename from docs/platforms/flutter/tracing/index.mdx rename to docs/platforms/dart/guides/flutter/tracing/index.mdx diff --git a/docs/platforms/flutter/tracing/instrumentation/automatic-instrumentation.mdx b/docs/platforms/dart/guides/flutter/tracing/instrumentation/automatic-instrumentation.mdx similarity index 81% rename from docs/platforms/flutter/tracing/instrumentation/automatic-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/tracing/instrumentation/automatic-instrumentation.mdx index dc9b0abf371e26..c6e2ef5647eb7a 100644 --- a/docs/platforms/flutter/tracing/instrumentation/automatic-instrumentation.mdx +++ b/docs/platforms/dart/guides/flutter/tracing/instrumentation/automatic-instrumentation.mdx @@ -15,13 +15,13 @@ Capturing transactions requires that you first set Sentry's routing instrumentation in Flutter automatically tracks and reports page navigation events in your app. It supports both [standard Flutter routing](https://docs.flutter.dev/ui/navigation) and the [GoRouter](https://pub.dev/packages/go_router) package. -Learn more in our [Routing Instrumentation](/platforms/flutter/integrations/routing-instrumentation/) docs. +Learn more in our [Routing Instrumentation](/platforms/dart/guides/flutter/integrations/routing-instrumentation/) docs. ### User Interaction Sentry's user interaction instrumentation captures transactions and adds breadcrumbs for a set of different user interactions, which include clicks, long clicks, taps, and so on. -Learn more in our [User Interaction Instrumentation](/platforms/flutter/integrations/user-interaction-instrumentation/) docs. +Learn more in our [User Interaction Instrumentation](/platforms/dart/guides/flutter/integrations/user-interaction-instrumentation/) docs. ### http.Client Library @@ -39,7 +39,7 @@ Learn more in our [Dio Instrumentation](/platforms/dart/integrations/dio/#perfor The app start instrumentation provides insight into how long your application takes to launch. -Learn more in our [App Start Instrumentation](/platforms/flutter/integrations/app-start-instrumentation/) docs. +Learn more in our [App Start Instrumentation](/platforms/dart/guides/flutter/integrations/app-start-instrumentation/) docs. ### Slow and Frozen Frames @@ -47,13 +47,13 @@ Unresponsive UI and animation hitches annoy users and degrade the user experienc Slow and frozen frames are Mobile Vitals, which you can learn about in the [full documentation](/product/insights/mobile/mobile-vitals). -Learn more how to set it up in our [Slow and Frozen Frames Instrumentation](/platforms/flutter/integrations/slow-and-frozen-frames-instrumentation/) docs. +Learn more how to set it up in our [Slow and Frozen Frames Instrumentation](/platforms/dart/guides/flutter/integrations/slow-and-frozen-frames-instrumentation/) docs. ### AssetBundle Instrumentation The [AssetBundle](https://api.flutter.dev/flutter/services/AssetBundle-class.html) instrumentation provides insight into how long your app takes to load its assets, such as files. -Learn more in our [AssetBundle Instrumentation](/platforms/flutter/integrations/asset-bundle-instrumentation/) docs. +Learn more in our [AssetBundle Instrumentation](/platforms/dart/guides/flutter/integrations/asset-bundle-instrumentation/) docs. ### File I/O Instrumentation @@ -65,4 +65,4 @@ Learn more about our [file I/O integration](/platforms/dart/integrations/file/). The sqflite database instrumentation provides the ability to track the performance of any sqflite query. -Learn more about our [sqflite Database Instrumentation](/platforms/flutter/integrations/sqflite-instrumentation/). +Learn more about our [sqflite Database Instrumentation](/platforms/dart/guides/flutter/integrations/sqflite-instrumentation/). diff --git a/docs/platforms/flutter/tracing/instrumentation/custom-instrumentation.mdx b/docs/platforms/dart/guides/flutter/tracing/instrumentation/custom-instrumentation.mdx similarity index 100% rename from docs/platforms/flutter/tracing/instrumentation/custom-instrumentation.mdx rename to docs/platforms/dart/guides/flutter/tracing/instrumentation/custom-instrumentation.mdx diff --git a/docs/platforms/flutter/tracing/instrumentation/index.mdx b/docs/platforms/dart/guides/flutter/tracing/instrumentation/index.mdx similarity index 100% rename from docs/platforms/flutter/tracing/instrumentation/index.mdx rename to docs/platforms/dart/guides/flutter/tracing/instrumentation/index.mdx diff --git a/docs/platforms/flutter/tracing/instrumentation/performance-metrics.mdx b/docs/platforms/dart/guides/flutter/tracing/instrumentation/performance-metrics.mdx similarity index 100% rename from docs/platforms/flutter/tracing/instrumentation/performance-metrics.mdx rename to docs/platforms/dart/guides/flutter/tracing/instrumentation/performance-metrics.mdx diff --git a/docs/platforms/flutter/tracing/trace-propagation/dealing-with-cors-issues/index.mdx b/docs/platforms/dart/guides/flutter/tracing/trace-propagation/dealing-with-cors-issues/index.mdx similarity index 100% rename from docs/platforms/flutter/tracing/trace-propagation/dealing-with-cors-issues/index.mdx rename to docs/platforms/dart/guides/flutter/tracing/trace-propagation/dealing-with-cors-issues/index.mdx diff --git a/docs/platforms/flutter/tracing/trace-propagation/index.mdx b/docs/platforms/dart/guides/flutter/tracing/trace-propagation/index.mdx similarity index 100% rename from docs/platforms/flutter/tracing/trace-propagation/index.mdx rename to docs/platforms/dart/guides/flutter/tracing/trace-propagation/index.mdx diff --git a/docs/platforms/flutter/tracing/trace-propagation/limiting-trace-propagation/index.mdx b/docs/platforms/dart/guides/flutter/tracing/trace-propagation/limiting-trace-propagation/index.mdx similarity index 100% rename from docs/platforms/flutter/tracing/trace-propagation/limiting-trace-propagation/index.mdx rename to docs/platforms/dart/guides/flutter/tracing/trace-propagation/limiting-trace-propagation/index.mdx diff --git a/docs/platforms/flutter/troubleshooting.mdx b/docs/platforms/dart/guides/flutter/troubleshooting.mdx similarity index 92% rename from docs/platforms/flutter/troubleshooting.mdx rename to docs/platforms/dart/guides/flutter/troubleshooting.mdx index 733c5817909086..1a27fdb5c3c320 100644 --- a/docs/platforms/flutter/troubleshooting.mdx +++ b/docs/platforms/dart/guides/flutter/troubleshooting.mdx @@ -16,11 +16,11 @@ Please read the [Android developer documentation](https://developer.android.com/ ## "Missing API declaration" after App Store review -Starting May 1, 2024, Apple requires all apps submitted to the App Store to provide a list of privacy-related APIs they use, including the reasons under which they use it. If you received an email from Apple with the message "ITMS-91053: Missing API declaration", your app doesn't fulfill the requirements. To solve this, follow our [Apple Privacy Manifest](/platforms/flutter/data-management/apple-privacy-manifest) guide. +Starting May 1, 2024, Apple requires all apps submitted to the App Store to provide a list of privacy-related APIs they use, including the reasons under which they use it. If you received an email from Apple with the message "ITMS-91053: Missing API declaration", your app doesn't fulfill the requirements. To solve this, follow our [Apple Privacy Manifest](/platforms/dart/guides/flutter/data-management/apple-privacy-manifest) guide. ## Known Limitations -- If you enable the `split-debug-info` and `obfuscate` features, you must upload [debug symbols](/platforms/flutter/upload-debug/). +- If you enable the `split-debug-info` and `obfuscate` features, you must upload [debug symbols](/platforms/dart/guides/flutter/upload-debug/). - Issue titles might be obfuscated as we rely on the `runtimeType`, but they may not be human-readable. See the [Obfuscate Caveat](https://flutter.dev/docs/deployment/obfuscate#caveat). - Layout related errors are only caught by [FlutterError.onError](https://api.flutter.dev/flutter/foundation/FlutterError/onError.html) in debug mode. In release mode, they are removed by the Flutter framework. See [Flutter build modes](https://flutter.dev/docs/testing/build-modes). - Use [inbound filters](/concepts/data-management/filtering/) to exclude unhandled errors that are caught outside of your application in release builds. The SDK cannot filter these directly due to obfuscated stack traces. @@ -39,7 +39,7 @@ flutter build apk --target-platform=android-arm --split-per-abi ## Native Symbolication on Android -The configuration for symbolication of Native events (C/C++) is documented in our [Android Native Development Kit](/platforms/android/configuration/using-ndk/) content. If you are having issues with symbolication in Flutter, check that your configuration is correct, as discussed in our Flutter content that covers [Uploading for Android NDK](/platforms/flutter/upload-debug/#uploading-for-android-ndk) +The configuration for symbolication of Native events (C/C++) is documented in our [Android Native Development Kit](/platforms/android/configuration/using-ndk/) content. If you are having issues with symbolication in Flutter, check that your configuration is correct, as discussed in our Flutter content that covers [Uploading for Android NDK](/platforms/dart/guides/flutter/upload-debug/#uploading-for-android-ndk) ## Native Symbolication on iOS/macOS @@ -47,11 +47,11 @@ Flutter `split-debug-info` and `obfuscate` flags are supported on iOS/macOS. The ## Source Context -Source Context support requires compiling your app using the `split-debug-info` build parameter on Flutter `3.10.0` and above. You must also upload [debug symbols](/platforms/flutter/upload-debug/) with the `upload_sources` option enabled. +Source Context support requires compiling your app using the `split-debug-info` build parameter on Flutter `3.10.0` and above. You must also upload [debug symbols](/platforms/dart/guides/flutter/upload-debug/) with the `upload_sources` option enabled. ## Sentry Dart Plugin -If you are using the Sentry Dart Plugin to upload [Debug Symbols](/platforms/flutter/upload-debug/#automatically-upload-debug-symbols), refer to the points below to resolve potential issues. +If you are using the Sentry Dart Plugin to upload [Debug Symbols](/platforms/dart/guides/flutter/upload-debug/#automatically-upload-debug-symbols), refer to the points below to resolve potential issues. A Sentry `auth_token` can be generated at the [Organization Auth Tokens ](https://sentry.io/orgredirect/organizations/:orgslug/settings/auth-tokens/) settings page. diff --git a/docs/platforms/flutter/upload-debug.mdx b/docs/platforms/dart/guides/flutter/upload-debug.mdx similarity index 97% rename from docs/platforms/flutter/upload-debug.mdx rename to docs/platforms/dart/guides/flutter/upload-debug.mdx index 4b26b317d3b5a5..f11d45b88249e9 100644 --- a/docs/platforms/flutter/upload-debug.mdx +++ b/docs/platforms/dart/guides/flutter/upload-debug.mdx @@ -165,7 +165,7 @@ See our docs on uploading [Debug Information Files](/cli/dif/#uploading-files) m See our docs on uploading [Debug Information Files](/cli/dif/#uploading-files) manually with the Sentry CLI. -If you're using a version of `sentry_flutter` earlier than 5.1, native symbolication on Android requires a specific configuration. Refer to [Troubleshooting](/platforms/flutter/troubleshooting/#native-symbolication-on-android) for more information. +If you're using a version of `sentry_flutter` earlier than 5.1, native symbolication on Android requires a specific configuration. Refer to [Troubleshooting](/platforms/dart/guides/flutter/troubleshooting/#native-symbolication-on-android) for more information. @@ -251,4 +251,4 @@ Alternative place to download sentry-cli. This is a `string` type with default v ## Troubleshooting -Refer to [Troubleshooting - Sentry Dart Plugin](/platforms/flutter/troubleshooting#sentry-dart-plugin) to resolve potential issues. +Refer to [Troubleshooting - Sentry Dart Plugin](/platforms/dart/guides/flutter/troubleshooting#sentry-dart-plugin) to resolve potential issues. diff --git a/docs/platforms/flutter/usage/index.mdx b/docs/platforms/dart/guides/flutter/usage/index.mdx similarity index 100% rename from docs/platforms/flutter/usage/index.mdx rename to docs/platforms/dart/guides/flutter/usage/index.mdx diff --git a/docs/platforms/flutter/usage/sdk-fingerprinting/index.mdx b/docs/platforms/dart/guides/flutter/usage/sdk-fingerprinting/index.mdx similarity index 100% rename from docs/platforms/flutter/usage/sdk-fingerprinting/index.mdx rename to docs/platforms/dart/guides/flutter/usage/sdk-fingerprinting/index.mdx diff --git a/docs/platforms/flutter/usage/set-level/index.mdx b/docs/platforms/dart/guides/flutter/usage/set-level/index.mdx similarity index 100% rename from docs/platforms/flutter/usage/set-level/index.mdx rename to docs/platforms/dart/guides/flutter/usage/set-level/index.mdx diff --git a/docs/platforms/flutter/user-feedback/img/flutter_sentry_feedback_widget.png b/docs/platforms/dart/guides/flutter/user-feedback/img/flutter_sentry_feedback_widget.png similarity index 100% rename from docs/platforms/flutter/user-feedback/img/flutter_sentry_feedback_widget.png rename to docs/platforms/dart/guides/flutter/user-feedback/img/flutter_sentry_feedback_widget.png diff --git a/docs/platforms/flutter/user-feedback/index.mdx b/docs/platforms/dart/guides/flutter/user-feedback/index.mdx similarity index 100% rename from docs/platforms/flutter/user-feedback/index.mdx rename to docs/platforms/dart/guides/flutter/user-feedback/index.mdx diff --git a/docs/platforms/dart/index.mdx b/docs/platforms/dart/index.mdx index fc9856334157e0..3a2abfca1dfcd8 100644 --- a/docs/platforms/dart/index.mdx +++ b/docs/platforms/dart/index.mdx @@ -23,6 +23,13 @@ In addition to capturing errors, you can monitor interactions between multiple s Select which Sentry features you'd like to install in addition to Error Monitoring to get the corresponding installation and configuration instructions below. + + +Sentry provides a dedicated [Flutter SDK](/platforms/dart/guides/flutter) as well. + + + + ## Install diff --git a/docs/product/explore/session-replay/mobile/index.mdx b/docs/product/explore/session-replay/mobile/index.mdx index 4fd2492918a998..4d3680f39699d6 100644 --- a/docs/product/explore/session-replay/mobile/index.mdx +++ b/docs/product/explore/session-replay/mobile/index.mdx @@ -55,7 +55,7 @@ We recommend updating to the latest version, but the minimum versions supported - [iOS](/platforms/apple/guides/ios/session-replay/), [8.43.0](https://github.com/getsentry/sentry-cocoa/releases) - [Android](/platforms/android/session-replay/), [7.20.0](https://github.com/getsentry/sentry-java/releases) - [React Native](/platforms/react-native/session-replay/), [6.5.0](https://github.com/getsentry/sentry-react-native/releases) -- [Flutter](/platforms/flutter/session-replay/), [8.12.0](https://github.com/getsentry/sentry-dart/releases) +- [Flutter](/platforms/dart/guides/flutter/session-replay/), [8.12.0](https://github.com/getsentry/sentry-dart/releases) ## Frequently Asked Questions diff --git a/docs/product/insights/getting-started.mdx b/docs/product/insights/getting-started.mdx index c1061339a39189..643e213014c34c 100644 --- a/docs/product/insights/getting-started.mdx +++ b/docs/product/insights/getting-started.mdx @@ -80,7 +80,7 @@ If you don't already have performance monitoring enabled, use the links for supp url="/platforms/apple/guides/ios/tracing/" /> -- +- - diff --git a/docs/product/insights/mobile/mobile-vitals/screen-loads.mdx b/docs/product/insights/mobile/mobile-vitals/screen-loads.mdx index 5712d35cca17de..7e1a00d609689a 100644 --- a/docs/product/insights/mobile/mobile-vitals/screen-loads.mdx +++ b/docs/product/insights/mobile/mobile-vitals/screen-loads.mdx @@ -27,7 +27,7 @@ Sentry tracks TTID automatically, but [TTFD](/product/insights/mobile/mobile-vit **For Flutter:** -- `>=7.18.0` [TTID+TTFD for Routing Instrumentation](/platforms/flutter/integrations/routing-instrumentation/#time-to-initial-display) +- `>=7.18.0` [TTID+TTFD for Routing Instrumentation](/platforms/dart/guides/flutter/integrations/routing-instrumentation/#time-to-initial-display) **For React Native:** diff --git a/docs/product/issues/issue-details/index.mdx b/docs/product/issues/issue-details/index.mdx index dee6b628a7c557..a288bc41af14d6 100644 --- a/docs/product/issues/issue-details/index.mdx +++ b/docs/product/issues/issue-details/index.mdx @@ -148,7 +148,7 @@ Sentry provides the ability to take a screenshot and include it as an attachment - [.NET Xamarin](/platforms/dotnet/guides/xamarin/) - [Android](/platforms/android/enriching-events/screenshots/) -- [Flutter](/platforms/flutter/enriching-events/screenshots/) +- [Flutter](/platforms/dart/guides/flutter/enriching-events/screenshots/) - [iOS](/platforms/apple/guides/ios/enriching-events/screenshots/) - [JavaScript Electron](/platforms/javascript/guides/electron/enriching-events/screenshots/) - [React Native](/platforms/react-native/enriching-events/screenshots/) diff --git a/docs/product/releases/setup/index.mdx b/docs/product/releases/setup/index.mdx index 80048c84de70eb..23ee4426da5468 100644 --- a/docs/product/releases/setup/index.mdx +++ b/docs/product/releases/setup/index.mdx @@ -23,7 +23,7 @@ You must have the environment [configured in your SDK](/platform-redirect/?next= Release health is supported for the following SDKs: - [Android](/platforms/android/configuration/releases/#release-health) -- [Flutter](/platforms/flutter/configuration/releases/#release-health) +- [Flutter](/platforms/dart/guides/flutter/configuration/releases/#release-health) - [iOS](/platforms/apple/configuration/releases/#release-health) - [JavaScript (browser)](/platforms/javascript/configuration/releases/#release-health) - [JavaScript (node)](/platforms/javascript/guides/node/configuration/releases/#release-health) @@ -41,7 +41,7 @@ Release health is supported for the following SDKs: In cases where your code is processed — bundled, minified, transpiled, compiled, or otherwise obfuscated by tools like webpack, Terser, or the C++ compiler — source maps (or other debug files) are necessary for Sentry to display the source code in your stack traces in its original untransformed form. Setting up source maps is also necessary before [suspect commits](#3-associate-commits) can be enabled. Check out our SDK documentation to find source map or other debug file set up instructions for your specific platform if it's not in the list below: - [Android](/platforms/android/configuration/using-ndk/#symbolicate-stack-traces) -- [Flutter](/platforms/flutter/upload-debug/) +- [Flutter](/platforms/dart/guides/flutter/upload-debug/) - [iOS](/platforms/apple/guides/ios/dsym/) - [JavaScript](/platforms/javascript/sourcemaps/) - [Node.js](/platforms/javascript/guides/node/sourcemaps/) diff --git a/docs/product/user-feedback/setup.mdx b/docs/product/user-feedback/setup.mdx index c47697b82fe665..2457fc169f1dec 100644 --- a/docs/product/user-feedback/setup.mdx +++ b/docs/product/user-feedback/setup.mdx @@ -44,7 +44,7 @@ This allows you to connect your own user interface with Sentry's Crash-Reports. - [Apple](/platforms/apple/user-feedback/) - [Dart](/platforms/dart/user-feedback/) - [.NET](/platforms/dotnet/user-feedback/) -- [Flutter](/platforms/flutter/user-feedback/) +- [Flutter](/platforms/dart/guides/flutter/user-feedback/) - [Java](/platforms/java/user-feedback/) - [Kotlin](/platforms/kotlin/guides/kotlin-multiplatform/user-feedback/) - [Node.JS](/platforms/javascript/guides/node/user-feedback/) diff --git a/includes/custom-measurements-supported-sdks.mdx b/includes/custom-measurements-supported-sdks.mdx index 0c4aa412a92446..e7a8da48dfa57d 100644 --- a/includes/custom-measurements-supported-sdks.mdx +++ b/includes/custom-measurements-supported-sdks.mdx @@ -1,7 +1,7 @@ - [Android (version `6.5.0` or later)](/platforms/android/performance/instrumentation/performance-metrics/) - [Apple (version `7.28.0` or later)](/platforms/apple/performance/instrumentation/performance-metrics/) - [Dart (version `6.11.0` or later)](/platforms/dart/performance/instrumentation/performance-metrics/) -- [Flutter (version `6.11.0` or later)](/platforms/flutter/performance/instrumentation/performance-metrics/) +- [Flutter (version `6.11.0` or later)](/platforms/dart/guides/flutter/performance/instrumentation/performance-metrics/) - [Java (version `6.5.0` or later)](/platforms/java/performance/instrumentation/performance-metrics/) - [JavaScript (version `7.0.0` or later)](/platforms/javascript/performance/instrumentation/performance-metrics/) - [.NET (version `3.23.0` or later)](/platforms/dotnet/performance/instrumentation/performance-metrics/) diff --git a/platform-includes/distributed-tracing/how-to-use/dart.mdx b/platform-includes/distributed-tracing/how-to-use/dart.mdx index 704280ffba7547..146acb86e6a329 100644 --- a/platform-includes/distributed-tracing/how-to-use/dart.mdx +++ b/platform-includes/distributed-tracing/how-to-use/dart.mdx @@ -1 +1 @@ -In order to use distributed tracing with the Native SDK, follow the custom instrumentation steps. +In order to use distributed tracing with the Native SDK, follow the custom instrumentation steps. \ No newline at end of file diff --git a/public/_platforms/_index.json b/public/_platforms/_index.json index 81a121c0886519..90b721d8d959e3 100644 --- a/public/_platforms/_index.json +++ b/public/_platforms/_index.json @@ -1 +1 @@ -{"platforms":{"android":{"_self":{"key":"android","type":"framework","details":"android.json","doc_link":"https://docs.sentry.io/platforms/android/","name":"Android","aliases":[],"categories":["mobile"]},"profiling-onboarding-1-install":{"key":"android.profiling-onboarding-1-install","type":"language","details":"android/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"android.profiling-onboarding-2-configure-performance","type":"language","details":"android/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"android.profiling-onboarding-3-configure-profiling","type":"language","details":"android/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-4-upload":{"key":"android.profiling-onboarding-4-upload","type":"language","details":"android/profiling-onboarding-4-upload.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]}},"apple":{"_self":{"key":"apple","type":"language","details":"apple.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"Apple","aliases":["cocoa"],"categories":["mobile","desktop"]},"ios":{"key":"apple.ios","type":"language","details":"apple/ios.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"iOS","aliases":[],"categories":["mobile"]},"macos":{"key":"apple.macos","type":"language","details":"apple/macos.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"macOS","aliases":[],"categories":["desktop"]},"ios-profiling-onboarding-1-install":{"key":"apple.ios-profiling-onboarding-1-install","type":"language","details":"apple/ios-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-2-configure-performance":{"key":"apple.ios-profiling-onboarding-2-configure-performance","type":"language","details":"apple/ios-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-3-configure-profiling":{"key":"apple.ios-profiling-onboarding-3-configure-profiling","type":"language","details":"apple/ios-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-4-upload":{"key":"apple.ios-profiling-onboarding-4-upload","type":"language","details":"apple/ios-profiling-onboarding-4-upload.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]}},"capacitor":{"_self":{"key":"capacitor","type":"framework","details":"capacitor.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/","name":"Capacitor","aliases":[],"categories":[]}},"cordova":{"_self":{"key":"cordova","type":"language","details":"cordova.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/cordova/","name":"Cordova","aliases":[],"categories":[]}},"dart":{"_self":{"key":"dart","type":"framework","details":"dart.json","doc_link":"https://docs.sentry.io/platforms/dart/","name":"Dart","aliases":[],"categories":["mobile","browser","server"]}},"dotnet":{"aspnet":{"key":"dotnet.aspnet","type":"framework","details":"dotnet/aspnet.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aspnet/","name":"ASP.NET","aliases":[],"categories":[]},"aspnetcore":{"key":"dotnet.aspnetcore","type":"framework","details":"dotnet/aspnetcore.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/","name":"ASP.NET Core","aliases":[],"categories":[]},"awslambda":{"key":"dotnet.awslambda","type":"framework","details":"dotnet/awslambda.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aws-lambda/","name":"AWS Lambda (.NET)","aliases":[],"categories":[]},"gcpfunctions":{"key":"dotnet.gcpfunctions","type":"framework","details":"dotnet/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/google-cloud-functions/","name":"Google Cloud Functions (.NET)","aliases":[],"categories":[]},"_self":{"key":"dotnet","type":"language","details":"dotnet.json","doc_link":"https://docs.sentry.io/platforms/dotnet/","name":".NET","aliases":["C#"],"categories":[]},"maui":{"key":"dotnet.maui","type":"framework","details":"dotnet/maui.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/maui/","name":"Multi-platform App UI (MAUI)","aliases":[],"categories":[]},"uwp":{"key":"dotnet.uwp","type":"framework","details":"dotnet/uwp.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/uwp/","name":"UWP","aliases":[],"categories":[]},"winforms":{"key":"dotnet.winforms","type":"framework","details":"dotnet/winforms.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/winforms/","name":"Windows Forms","aliases":[],"categories":[]},"wpf":{"key":"dotnet.wpf","type":"framework","details":"dotnet/wpf.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/wpf/","name":"WPF","aliases":[],"categories":[]},"xamarin":{"key":"dotnet.xamarin","type":"framework","details":"dotnet/xamarin.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/xamarin/","name":"Xamarin","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"dotnet.profiling-onboarding-0-alert","type":"language","details":"dotnet/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"dotnet.profiling-onboarding-1-install","type":"language","details":"dotnet/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"dotnet.profiling-onboarding-2-configure-performance","type":"language","details":"dotnet/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"dotnet.profiling-onboarding-3-configure-profiling","type":"language","details":"dotnet/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]}},"electron":{"_self":{"key":"electron","type":"language","details":"electron.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/","name":"Electron","aliases":[],"categories":[]}},"elixir":{"_self":{"key":"elixir","type":"language","details":"elixir.json","doc_link":"https://docs.sentry.io/platforms/elixir/","name":"Elixir","aliases":[],"categories":[]}},"flutter":{"_self":{"key":"flutter","type":"framework","details":"flutter.json","doc_link":"https://docs.sentry.io/platforms/flutter/","name":"Flutter","aliases":[],"categories":["mobile","browser","desktop"]},"profiling-onboarding-0-alert":{"key":"flutter.profiling-onboarding-0-alert","type":"language","details":"flutter/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"flutter.profiling-onboarding-1-install","type":"language","details":"flutter/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"flutter.profiling-onboarding-2-configure-performance","type":"language","details":"flutter/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"flutter.profiling-onboarding-3-configure-profiling","type":"language","details":"flutter/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]}},"go":{"_self":{"key":"go","type":"language","details":"go.json","doc_link":"https://docs.sentry.io/platforms/go/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"go.profiling-onboarding-0-alert","type":"language","details":"go/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"go.profiling-onboarding-1-install","type":"language","details":"go/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"go.profiling-onboarding-2-configure-performance","type":"language","details":"go/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"go.profiling-onboarding-3-configure-profiling","type":"language","details":"go/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]}},"ionic":{"_self":{"key":"ionic","type":"framework","details":"ionic.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/","name":"Ionic","aliases":[],"categories":[]}},"java":{"_self":{"key":"java","type":"language","details":"java.json","doc_link":"https://docs.sentry.io/platforms/java/","name":"Java","aliases":[],"categories":["desktop","server"]},"log4j2":{"key":"java.log4j2","type":"framework","details":"java/log4j2.json","doc_link":"https://docs.sentry.io/platforms/java/guides/log4j2/","name":"Log4j 2.x","aliases":[],"categories":["desktop","server"]},"logback":{"key":"java.logback","type":"framework","details":"java/logback.json","doc_link":"https://docs.sentry.io/platforms/java/guides/logback/","name":"Logback","aliases":[],"categories":["desktop","server"]},"spring-boot":{"key":"java.spring-boot","type":"framework","details":"java/spring-boot.json","doc_link":"https://docs.sentry.io/platforms/java/guides/spring-boot/","name":"Spring Boot","aliases":[],"categories":["desktop","server"]},"spring":{"key":"java.spring","type":"framework","details":"java/spring.json","doc_link":"https://https://docs.sentry.io/platforms/java/guides/spring/","name":"Spring","aliases":[],"categories":["desktop","server"]}},"javascript":{"_self":{"key":"javascript","type":"language","details":"javascript.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":["browser"]},"with-error-monitoring-and-performance":{"key":"javascript.with-error-monitoring-and-performance","type":"language","details":"javascript/with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring-and-replay":{"key":"javascript.with-error-monitoring-and-replay","type":"language","details":"javascript/with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring-performance-and-replay":{"key":"javascript.with-error-monitoring-performance-and-replay","type":"language","details":"javascript/with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring":{"key":"javascript.with-error-monitoring","type":"language","details":"javascript/with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"angular":{"key":"javascript.angular","type":"framework","details":"javascript/angular.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":["browser"]},"angular-with-error-monitoring-and-performance":{"key":"javascript.angular-with-error-monitoring-and-performance","type":"framework","details":"javascript/angular-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring-and-replay":{"key":"javascript.angular-with-error-monitoring-and-replay","type":"framework","details":"javascript/angular-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring-performance-and-replay":{"key":"javascript.angular-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/angular-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring":{"key":"javascript.angular-with-error-monitoring","type":"framework","details":"javascript/angular-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"ember":{"key":"javascript.ember","type":"framework","details":"javascript/ember.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":["browser"]},"ember-with-error-monitoring-and-performance":{"key":"javascript.ember-with-error-monitoring-and-performance","type":"framework","details":"javascript/ember-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring-and-replay":{"key":"javascript.ember-with-error-monitoring-and-replay","type":"framework","details":"javascript/ember-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring-performance-and-replay":{"key":"javascript.ember-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/ember-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring":{"key":"javascript.ember-with-error-monitoring","type":"framework","details":"javascript/ember-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"gatsby":{"key":"javascript.gatsby","type":"framework","details":"javascript/gatsby.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":["browser"]},"gatsby-with-error-monitoring-and-performance":{"key":"javascript.gatsby-with-error-monitoring-and-performance","type":"framework","details":"javascript/gatsby-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring-and-replay":{"key":"javascript.gatsby-with-error-monitoring-and-replay","type":"framework","details":"javascript/gatsby-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring-performance-and-replay":{"key":"javascript.gatsby-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/gatsby-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring":{"key":"javascript.gatsby-with-error-monitoring","type":"framework","details":"javascript/gatsby-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"nextjs":{"key":"javascript.nextjs","type":"framework","details":"javascript/nextjs.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":["browser","server"]},"nextjs-with-error-monitoring-and-performance":{"key":"javascript.nextjs-with-error-monitoring-and-performance","type":"framework","details":"javascript/nextjs-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring-and-replay":{"key":"javascript.nextjs-with-error-monitoring-and-replay","type":"framework","details":"javascript/nextjs-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring-performance-and-replay":{"key":"javascript.nextjs-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/nextjs-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring":{"key":"javascript.nextjs-with-error-monitoring","type":"framework","details":"javascript/nextjs-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"react":{"key":"javascript.react","type":"framework","details":"javascript/react.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":["browser"]},"react-with-error-monitoring-and-performance":{"key":"javascript.react-with-error-monitoring-and-performance","type":"framework","details":"javascript/react-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring-and-replay":{"key":"javascript.react-with-error-monitoring-and-replay","type":"framework","details":"javascript/react-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring-performance-and-replay":{"key":"javascript.react-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/react-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring":{"key":"javascript.react-with-error-monitoring","type":"framework","details":"javascript/react-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"remix":{"key":"javascript.remix","type":"framework","details":"javascript/remix.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":["browser","server"]},"remix-with-error-monitoring-and-performance":{"key":"javascript.remix-with-error-monitoring-and-performance","type":"framework","details":"javascript/remix-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring-and-replay":{"key":"javascript.remix-with-error-monitoring-and-replay","type":"framework","details":"javascript/remix-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring-performance-and-replay":{"key":"javascript.remix-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/remix-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring":{"key":"javascript.remix-with-error-monitoring","type":"framework","details":"javascript/remix-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"svelte":{"key":"javascript.svelte","type":"framework","details":"javascript/svelte.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":["browser"]},"svelte-with-error-monitoring-and-performance":{"key":"javascript.svelte-with-error-monitoring-and-performance","type":"framework","details":"javascript/svelte-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring-and-replay":{"key":"javascript.svelte-with-error-monitoring-and-replay","type":"framework","details":"javascript/svelte-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring-performance-and-replay":{"key":"javascript.svelte-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/svelte-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring":{"key":"javascript.svelte-with-error-monitoring","type":"framework","details":"javascript/svelte-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"sveltekit":{"key":"javascript.sveltekit","type":"framework","details":"javascript/sveltekit.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":["browser","server"]},"sveltekit-with-error-monitoring-and-performance":{"key":"javascript.sveltekit-with-error-monitoring-and-performance","type":"framework","details":"javascript/sveltekit-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring-and-replay":{"key":"javascript.sveltekit-with-error-monitoring-and-replay","type":"framework","details":"javascript/sveltekit-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring-performance-and-replay":{"key":"javascript.sveltekit-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/sveltekit-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring":{"key":"javascript.sveltekit-with-error-monitoring","type":"framework","details":"javascript/sveltekit-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"vue":{"key":"javascript.vue","type":"framework","details":"javascript/vue.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":["browser"]},"vue-with-error-monitoring-and-performance":{"key":"javascript.vue-with-error-monitoring-and-performance","type":"framework","details":"javascript/vue-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring-and-replay":{"key":"javascript.vue-with-error-monitoring-and-replay","type":"framework","details":"javascript/vue-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring-performance-and-replay":{"key":"javascript.vue-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/vue-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring":{"key":"javascript.vue-with-error-monitoring","type":"framework","details":"javascript/vue-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"javascript.performance-onboarding-1-install","type":"language","details":"javascript/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"javascript.performance-onboarding-2-configure","type":"language","details":"javascript/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"javascript.performance-onboarding-3-verify","type":"language","details":"javascript/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"react-performance-onboarding-1-install":{"key":"javascript.react-performance-onboarding-1-install","type":"framework","details":"javascript/react-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-1-install":{"key":"javascript.nextjs-performance-onboarding-1-install","type":"framework","details":"javascript/nextjs-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"react-performance-onboarding-2-configure":{"key":"javascript.react-performance-onboarding-2-configure","type":"framework","details":"javascript/react-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-2-configure":{"key":"javascript.nextjs-performance-onboarding-2-configure","type":"framework","details":"javascript/nextjs-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"react-performance-onboarding-3-verify":{"key":"javascript.react-performance-onboarding-3-verify","type":"framework","details":"javascript/react-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-3-verify":{"key":"javascript.nextjs-performance-onboarding-3-verify","type":"framework","details":"javascript/nextjs-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"angular-profiling-onboarding-1-install":{"key":"javascript.angular-profiling-onboarding-1-install","type":"framework","details":"javascript/angular-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/profiling/","name":"Angular (JS Self Profiling)","aliases":[],"categories":[]},"angular-profiling-onboarding-2-configure-document-policy":{"key":"javascript.angular-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/angular-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"angular-profiling-onboarding-3-configure":{"key":"javascript.angular-profiling-onboarding-3-configure","type":"framework","details":"javascript/angular-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"javascript.profiling-onboarding-1-install","type":"framework","details":"javascript/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-2-configure-document-policy":{"key":"javascript.profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-3-configure":{"key":"javascript.profiling-onboarding-3-configure","type":"framework","details":"javascript/profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-1-install":{"key":"javascript.react-profiling-onboarding-1-install","type":"framework","details":"javascript/react-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-2-configure-document-policy":{"key":"javascript.react-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/react-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-3-configure":{"key":"javascript.react-profiling-onboarding-3-configure","type":"framework","details":"javascript/react-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-1-install":{"key":"javascript.vue-profiling-onboarding-1-install","type":"framework","details":"javascript/vue-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/profiling/","name":"Vue (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-2-configure-document-policy":{"key":"javascript.vue-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/vue-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-3-configure":{"key":"javascript.vue-profiling-onboarding-3-configure","type":"framework","details":"javascript/vue-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"Vue (JS Self Profiling)","aliases":[],"categories":[]},"astro-replay-onboarding-1-install":{"key":"javascript.astro-replay-onboarding-1-install","type":"language","details":"javascript/astro-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/astro/session-replay/","name":"Astro","aliases":[],"categories":[]},"astro-replay-onboarding-2-configure":{"key":"javascript.astro-replay-onboarding-2-configure","type":"language","details":"javascript/astro-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/astro/session-replay/","name":"Astro","aliases":[],"categories":[]},"angular-replay-onboarding-1-install":{"key":"javascript.angular-replay-onboarding-1-install","type":"language","details":"javascript/angular-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"angular-replay-onboarding-2-configure":{"key":"javascript.angular-replay-onboarding-2-configure","type":"language","details":"javascript/angular-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"capacitor-replay-onboarding-1-install":{"key":"javascript.capacitor-replay-onboarding-1-install","type":"language","details":"javascript/capacitor-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/session-replay/","name":"Capacitor","aliases":[],"categories":[]},"capacitor-replay-onboarding-2-configure":{"key":"javascript.capacitor-replay-onboarding-2-configure","type":"language","details":"javascript/capacitor-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/session-replay/","name":"JavaScript","aliases":[],"categories":[]},"electron-replay-onboarding-1-install":{"key":"javascript.electron-replay-onboarding-1-install","type":"framework","details":"javascript/electron-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/session-replay/","name":"Electron","aliases":[],"categories":[]},"electron-replay-onboarding-2-configure":{"key":"javascript.electron-replay-onboarding-2-configure","type":"framework","details":"javascript/electron-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/session-replay/","name":"Electron","aliases":[],"categories":[]},"ember-replay-onboarding-1-install":{"key":"javascript.ember-replay-onboarding-1-install","type":"language","details":"javascript/ember-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"ember-replay-onboarding-2-configure":{"key":"javascript.ember-replay-onboarding-2-configure","type":"language","details":"javascript/ember-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"gatsby-replay-onboarding-1-install":{"key":"javascript.gatsby-replay-onboarding-1-install","type":"language","details":"javascript/gatsby-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"gatsby-replay-onboarding-2-configure":{"key":"javascript.gatsby-replay-onboarding-2-configure","type":"language","details":"javascript/gatsby-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"replay-onboarding-1-install":{"key":"javascript.replay-onboarding-1-install","type":"language","details":"javascript/replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"replay-onboarding-2-configure":{"key":"javascript.replay-onboarding-2-configure","type":"language","details":"javascript/replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"nextjs-replay-onboarding-1-install":{"key":"javascript.nextjs-replay-onboarding-1-install","type":"language","details":"javascript/nextjs-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"nextjs-replay-onboarding-2-configure":{"key":"javascript.nextjs-replay-onboarding-2-configure","type":"language","details":"javascript/nextjs-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"react-replay-onboarding-1-install":{"key":"javascript.react-replay-onboarding-1-install","type":"language","details":"javascript/react-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"react-replay-onboarding-2-configure":{"key":"javascript.react-replay-onboarding-2-configure","type":"language","details":"javascript/react-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"remix-replay-onboarding-1-install":{"key":"javascript.remix-replay-onboarding-1-install","type":"language","details":"javascript/remix-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"remix-replay-onboarding-2-configure":{"key":"javascript.remix-replay-onboarding-2-configure","type":"language","details":"javascript/remix-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"svelte-replay-onboarding-1-install":{"key":"javascript.svelte-replay-onboarding-1-install","type":"language","details":"javascript/svelte-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"svelte-replay-onboarding-2-configure":{"key":"javascript.svelte-replay-onboarding-2-configure","type":"language","details":"javascript/svelte-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"sveltekit-replay-onboarding-1-install":{"key":"javascript.sveltekit-replay-onboarding-1-install","type":"language","details":"javascript/sveltekit-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"sveltekit-replay-onboarding-2-configure":{"key":"javascript.sveltekit-replay-onboarding-2-configure","type":"language","details":"javascript/sveltekit-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"vue-replay-onboarding-1-install":{"key":"javascript.vue-replay-onboarding-1-install","type":"language","details":"javascript/vue-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"vue-replay-onboarding-2-configure":{"key":"javascript.vue-replay-onboarding-2-configure","type":"language","details":"javascript/vue-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]}},"kotlin":{"_self":{"key":"kotlin","type":"language","details":"kotlin.json","doc_link":"https://docs.sentry.io/platforms/kotlin/","name":"Kotlin","aliases":[],"categories":["mobile","desktop","server"]}},"minidump":{"_self":{"key":"minidump","type":"framework","details":"minidump.json","doc_link":"https://docs.sentry.io/platforms/native/minidump/","name":"Minidump","aliases":[],"categories":[]}},"node":{"awslambda":{"key":"node.awslambda","type":"framework","details":"node/awslambda.json","doc_link":"https://docs.sentry.io/platforms/node/guides/aws-lambda/","name":"AWS Lambda (Node)","aliases":[],"categories":[]},"azurefunctions":{"key":"node.azurefunctions","type":"framework","details":"node/azurefunctions.json","doc_link":"https://docs.sentry.io/platforms/node/guides/azure-functions/","name":"Azure Functions (Node)","aliases":[],"categories":[]},"connect":{"key":"node.connect","type":"framework","details":"node/connect.json","doc_link":"https://docs.sentry.io/platforms/node/guides/connect/","name":"Connect","aliases":[],"categories":["browser"]},"express":{"key":"node.express","type":"framework","details":"node/express.json","doc_link":"https://docs.sentry.io/platforms/node/guides/express/","name":"Express","aliases":[],"categories":["browser"]},"gcpfunctions":{"key":"node.gcpfunctions","type":"framework","details":"node/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/node/guides/gcp-functions/","name":"Google Cloud Functions (Node)","aliases":[],"categories":[]},"_self":{"key":"node","type":"language","details":"node.json","doc_link":"https://docs.sentry.io/platforms/node/","name":"Node.js","aliases":[],"categories":["browser"]},"koa":{"key":"node.koa","type":"framework","details":"node/koa.json","doc_link":"https://docs.sentry.io/platforms/node/guides/koa/","name":"Koa","aliases":[],"categories":["browser"]},"serverlesscloud":{"key":"node.serverlesscloud","type":"framework","details":"node/serverlesscloud.json","doc_link":"https://docs.sentry.io/platforms/node/guides/serverless-cloud/","name":"Serverless (Node)","aliases":[],"categories":[]},"tracing":{"key":"node.tracing","type":"framework","details":"node/tracing.json","doc_link":"https://docs.sentry.io/platforms/node/tracing/instrumentation/custom-instrumentation/","name":"Node.js","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"node.performance-onboarding-1-install","type":"framework","details":"node/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"node.performance-onboarding-2-configure","type":"framework","details":"node/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]}, "performance-onboarding-3-verify":{"key":"node.performance-onboarding-3-verify","type":"framework","details":"node/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]}, "javascript-nextjs-profiling-onboarding-1-install":{"key":"node.javascript-nextjs-profiling-onboarding-1-install","type":"language","details":"node/javascript-nextjs-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-nextjs-profiling-onboarding-2-configure-performance":{"key":"node.javascript-nextjs-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-nextjs-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-nextjs-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-nextjs-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-nextjs-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-1-install":{"key":"node.javascript-remix-profiling-onboarding-1-install","type":"language","details":"node/javascript-remix-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-2-configure-performance":{"key":"node.javascript-remix-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-remix-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-remix-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-remix-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-1-install":{"key":"node.javascript-sveltekit-profiling-onboarding-1-install","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-2-configure-performance":{"key":"node.javascript-sveltekit-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-sveltekit-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"node.profiling-onboarding-1-install","type":"language","details":"node/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"node.profiling-onboarding-2-configure-performance","type":"language","details":"node/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"node.profiling-onboarding-3-configure-profiling","type":"language","details":"node/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]}},"native":{"_self":{"key":"native","type":"language","details":"native.json","doc_link":"https://docs.sentry.io/platforms/native/","name":"Native","aliases":[],"categories":["mobile","desktop"]},"qt":{"key":"native.qt","type":"framework","details":"native/qt.json","doc_link":"https://docs.sentry.io/platforms/native/guides/qt/","name":"Qt","aliases":[],"categories":["desktop","mobile"]}},"php":{"_self":{"key":"php","type":"language","details":"php.json","doc_link":"https://docs.sentry.io/platforms/php/","name":"PHP","aliases":[],"categories":[]},"laravel":{"key":"php.laravel","type":"framework","details":"php/laravel.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/","name":"Laravel","aliases":[],"categories":[]},"symfony":{"key":"php.symfony","type":"framework","details":"php/symfony.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/","name":"Symfony","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"php.performance-onboarding-1-install","type":"language","details":"php/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"php.performance-onboarding-2-configure","type":"language","details":"php/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"php.performance-onboarding-3-verify","type":"language","details":"php/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-1-install":{"key":"php.laravel-profiling-onboarding-1-install","type":"language","details":"php/laravel-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-2-configure-performance":{"key":"php.laravel-profiling-onboarding-2-configure-performance","type":"language","details":"php/laravel-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-3-configure-profiling":{"key":"php.laravel-profiling-onboarding-3-configure-profiling","type":"language","details":"php/laravel-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"php.profiling-onboarding-1-install","type":"language","details":"php/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"php.profiling-onboarding-2-configure-performance","type":"language","details":"php/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"php.profiling-onboarding-3-configure-profiling","type":"language","details":"php/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-1-install":{"key":"php.symfony2-profiling-onboarding-1-install","type":"language","details":"php/symfony2-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-2-configure-performance":{"key":"php.symfony2-profiling-onboarding-2-configure-performance","type":"language","details":"php/symfony2-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-3-configure-profiling":{"key":"php.symfony2-profiling-onboarding-3-configure-profiling","type":"language","details":"php/symfony2-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]}},"python":{"performance-onboarding-1-install":{"key":"python.performance-onboarding-1-install","type":"language","details":"python/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"django-performance-onboarding-1-install":{"key":"python.django-performance-onboarding-1-install","type":"framework","details":"python/django-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-1-install":{"key":"python.flask-performance-onboarding-1-install","type":"framework","details":"python/flask-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"python.performance-onboarding-3-verify","type":"language","details":"python/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"python.performance-onboarding-2-configure","type":"language","details":"python/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"django-performance-onboarding-2-configure":{"key":"python.django-performance-onboarding-2-configure","type":"framework","details":"python/django-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-2-configure":{"key":"python.flask-performance-onboarding-2-configure","type":"framework","details":"python/flask-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"django-performance-onboarding-3-verify":{"key":"python.django-performance-onboarding-3-verify","type":"framework","details":"python/django-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-3-verify":{"key":"python.flask-performance-onboarding-3-verify","type":"framework","details":"python/flask-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"aiohttp":{"key":"python.aiohttp","type":"framework","details":"python/aiohttp.json","doc_link":"https://docs.sentry.io/platforms/python/guides/aiohttp/","name":"AIOHTTP","aliases":[],"categories":[]},"asgi":{"key":"python.asgi","type":"framework","details":"python/asgi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/asgi/","name":"ASGI","aliases":[],"categories":[]},"awslambda":{"key":"python.awslambda","type":"framework","details":"python/awslambda.json","doc_link":"https://docs.sentry.io/platforms/python/guides/aws-lambda/","name":"AWS Lambda (Python)","aliases":[],"categories":[]},"bottle":{"key":"python.bottle","type":"framework","details":"python/bottle.json","doc_link":"https://docs.sentry.io/platforms/python/guides/bottle/","name":"Bottle","aliases":[],"categories":[]},"celery":{"key":"python.celery","type":"library","details":"python/celery.json","doc_link":"https://docs.sentry.io/platforms/python/guides/celery/","name":"Celery","aliases":[],"categories":[]},"chalice":{"key":"python.chalice","type":"framework","details":"python/chalice.json","doc_link":"https://docs.sentry.io/platforms/python/guides/chalice/","name":"Chalice","aliases":[],"categories":[]},"django":{"key":"python.django","type":"framework","details":"python/django.json","doc_link":"https://docs.sentry.io/platforms/python/guides/django/","name":"Django","aliases":[],"categories":[]},"falcon":{"key":"python.falcon","type":"framework","details":"python/falcon.json","doc_link":"https://docs.sentry.io/platforms/python/guides/falcon/","name":"Falcon","aliases":[],"categories":[]},"fastapi":{"key":"python.fastapi","type":"framework","details":"python/fastapi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/fastapi/","name":"FastAPI","aliases":[],"categories":[]},"flask":{"key":"python.flask","type":"framework","details":"python/flask.json","doc_link":"https://docs.sentry.io/platforms/python/guides/flask/","name":"Flask","aliases":[],"categories":[]},"gcpfunctions":{"key":"python.gcpfunctions","type":"framework","details":"python/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/python/guides/gcp-functions/","name":"Google Cloud Functions (Python)","aliases":[],"categories":[]},"_self":{"key":"python","type":"language","details":"python.json","doc_link":"https://docs.sentry.io/platforms/python/","name":"Python","aliases":[],"categories":[]},"pylons":{"key":"python.pylons","type":"framework","details":"python/pylons.json","doc_link":"https://docs.sentry.io/platforms/python/legacy-sdk/integrations/pylons/","name":"Pylons","aliases":[],"categories":[]},"pymongo":{"key":"python.pymongo","type":"library","details":"python/pymongo.json","doc_link":"https://docs.sentry.io/platforms/python/guides/pymongo/","name":"PyMongo","aliases":[],"categories":[]},"pyramid":{"key":"python.pyramid","type":"framework","details":"python/pyramid.json","doc_link":"https://docs.sentry.io/platforms/python/pyramid/","name":"Pyramid","aliases":[],"categories":[]},"quart":{"key":"python.quart","type":"framework","details":"python/quart.json","doc_link":"https://docs.sentry.io/platforms/python/guides/quart/","name":"Quart","aliases":[],"categories":[]},"rq":{"key":"python.rq","type":"library","details":"python/rq.json","doc_link":"https://docs.sentry.io/platforms/python/guides/rq/","name":"RQ (Redis Queue)","aliases":[],"categories":[]},"sanic":{"key":"python.sanic","type":"framework","details":"python/sanic.json","doc_link":"https://docs.sentry.io/platforms/python/guides/sanic/","name":"Sanic","aliases":[],"categories":[]},"serverless":{"key":"python.serverless","type":"framework","details":"python/serverless.json","doc_link":"https://docs.sentry.io/platforms/python/guides/serverless/","name":"Serverless (Python)","aliases":[],"categories":[]},"starlette":{"key":"python.starlette","type":"framework","details":"python/starlette.json","doc_link":"https://docs.sentry.io/platforms/python/guides/starlette/","name":"Starlette","aliases":[],"categories":[]},"tornado":{"key":"python.tornado","type":"framework","details":"python/tornado.json","doc_link":"https://docs.sentry.io/platforms/python/guides/tornado/","name":"Tornado","aliases":[],"categories":[]},"tracing":{"key":"python.tracing","type":"language","details":"python/tracing.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"tryton":{"key":"python.tryton","type":"framework","details":"python/tryton.json","doc_link":"https://docs.sentry.io/platforms/python/guides/tryton/","name":"Tryton","aliases":[],"categories":[]},"wsgi":{"key":"python.wsgi","type":"framework","details":"python/wsgi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/wsgi/","name":"WSGI","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"python.profiling-onboarding-1-install","type":"language","details":"python/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"python.profiling-onboarding-2-configure-performance","type":"language","details":"python/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"python.profiling-onboarding-3-configure-profiling","type":"language","details":"python/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]}},"react-native":{"_self":{"key":"react-native","type":"language","details":"react-native.json","doc_link":"https://docs.sentry.io/platforms/react-native/","name":"React Native","aliases":[],"categories":["mobile"]},"tracing":{"key":"react-native.tracing","type":"language","details":"react-native/tracing.json","doc_link":"https://docs.sentry.io/platforms/react-native/tracing/instrumentation/custom-instrumentation/","name":"React-Native","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"react-native.profiling-onboarding-0-alert","type":"language","details":"react-native/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"react-native.profiling-onboarding-1-install","type":"language","details":"react-native/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"react-native.profiling-onboarding-2-configure-performance","type":"language","details":"react-native/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"react-native.profiling-onboarding-3-configure-profiling","type":"language","details":"react-native/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]}},"ruby":{"_self":{"key":"ruby","type":"language","details":"ruby.json","doc_link":"https://docs.sentry.io/platforms/ruby/","name":"Ruby","aliases":[],"categories":[]},"rack":{"key":"ruby.rack","type":"framework","details":"ruby/rack.json","doc_link":"https://docs.sentry.io/platforms/ruby/guides/rack/","name":"Rack Middleware","aliases":[],"categories":[]},"rails":{"key":"ruby.rails","type":"framework","details":"ruby/rails.json","doc_link":"https://docs.sentry.io/platforms/ruby/guides/rails/","name":"Rails","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"ruby.profiling-onboarding-0-alert","type":"language","details":"ruby/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"ruby.profiling-onboarding-1-install","type":"language","details":"ruby/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"ruby.profiling-onboarding-2-configure-performance","type":"language","details":"ruby/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"ruby.profiling-onboarding-3-configure-profiling","type":"language","details":"ruby/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]}},"rust":{"_self":{"key":"rust","type":"language","details":"rust.json","doc_link":"https://docs.sentry.io/platforms/rust/","name":"Rust","aliases":[],"categories":[]}},"unity":{"_self":{"key":"unity","type":"framework","details":"unity.json","doc_link":"https://docs.sentry.io/platforms/unity/","name":"Unity","aliases":[],"categories":["mobile","browser","desktop","console","gaming"]}},"unreal":{"_self":{"key":"unreal","type":"framework","details":"unreal.json","doc_link":"https://docs.sentry.io/platforms/unreal/","name":"Unreal Engine","aliases":[],"categories":["mobile","desktop","console","gaming"]}}}} +{"platforms":{"android":{"_self":{"key":"android","type":"framework","details":"android.json","doc_link":"https://docs.sentry.io/platforms/android/","name":"Android","aliases":[],"categories":["mobile"]},"profiling-onboarding-1-install":{"key":"android.profiling-onboarding-1-install","type":"language","details":"android/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"android.profiling-onboarding-2-configure-performance","type":"language","details":"android/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"android.profiling-onboarding-3-configure-profiling","type":"language","details":"android/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]},"profiling-onboarding-4-upload":{"key":"android.profiling-onboarding-4-upload","type":"language","details":"android/profiling-onboarding-4-upload.json","doc_link":"https://docs.sentry.io/platforms/android/profiling/","name":"Android","aliases":[],"categories":[]}},"apple":{"_self":{"key":"apple","type":"language","details":"apple.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"Apple","aliases":["cocoa"],"categories":["mobile","desktop"]},"ios":{"key":"apple.ios","type":"language","details":"apple/ios.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"iOS","aliases":[],"categories":["mobile"]},"macos":{"key":"apple.macos","type":"language","details":"apple/macos.json","doc_link":"https://docs.sentry.io/platforms/apple/","name":"macOS","aliases":[],"categories":["desktop"]},"ios-profiling-onboarding-1-install":{"key":"apple.ios-profiling-onboarding-1-install","type":"language","details":"apple/ios-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-2-configure-performance":{"key":"apple.ios-profiling-onboarding-2-configure-performance","type":"language","details":"apple/ios-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-3-configure-profiling":{"key":"apple.ios-profiling-onboarding-3-configure-profiling","type":"language","details":"apple/ios-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]},"ios-profiling-onboarding-4-upload":{"key":"apple.ios-profiling-onboarding-4-upload","type":"language","details":"apple/ios-profiling-onboarding-4-upload.json","doc_link":"https://docs.sentry.io/platforms/apple/guides/ios/profiling/","name":"iOS","aliases":[],"categories":[]}},"capacitor":{"_self":{"key":"capacitor","type":"framework","details":"capacitor.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/","name":"Capacitor","aliases":[],"categories":[]}},"cordova":{"_self":{"key":"cordova","type":"language","details":"cordova.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/cordova/","name":"Cordova","aliases":[],"categories":[]}},"dart":{"_self":{"key":"dart","type":"framework","details":"dart.json","doc_link":"https://docs.sentry.io/platforms/dart/","name":"Dart","aliases":[],"categories":["mobile","browser","server"]}},"dotnet":{"aspnet":{"key":"dotnet.aspnet","type":"framework","details":"dotnet/aspnet.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aspnet/","name":"ASP.NET","aliases":[],"categories":[]},"aspnetcore":{"key":"dotnet.aspnetcore","type":"framework","details":"dotnet/aspnetcore.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/","name":"ASP.NET Core","aliases":[],"categories":[]},"awslambda":{"key":"dotnet.awslambda","type":"framework","details":"dotnet/awslambda.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/aws-lambda/","name":"AWS Lambda (.NET)","aliases":[],"categories":[]},"gcpfunctions":{"key":"dotnet.gcpfunctions","type":"framework","details":"dotnet/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/google-cloud-functions/","name":"Google Cloud Functions (.NET)","aliases":[],"categories":[]},"_self":{"key":"dotnet","type":"language","details":"dotnet.json","doc_link":"https://docs.sentry.io/platforms/dotnet/","name":".NET","aliases":["C#"],"categories":[]},"maui":{"key":"dotnet.maui","type":"framework","details":"dotnet/maui.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/maui/","name":"Multi-platform App UI (MAUI)","aliases":[],"categories":[]},"uwp":{"key":"dotnet.uwp","type":"framework","details":"dotnet/uwp.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/uwp/","name":"UWP","aliases":[],"categories":[]},"winforms":{"key":"dotnet.winforms","type":"framework","details":"dotnet/winforms.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/winforms/","name":"Windows Forms","aliases":[],"categories":[]},"wpf":{"key":"dotnet.wpf","type":"framework","details":"dotnet/wpf.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/wpf/","name":"WPF","aliases":[],"categories":[]},"xamarin":{"key":"dotnet.xamarin","type":"framework","details":"dotnet/xamarin.json","doc_link":"https://docs.sentry.io/platforms/dotnet/guides/xamarin/","name":"Xamarin","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"dotnet.profiling-onboarding-0-alert","type":"language","details":"dotnet/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"dotnet.profiling-onboarding-1-install","type":"language","details":"dotnet/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"dotnet.profiling-onboarding-2-configure-performance","type":"language","details":"dotnet/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"dotnet.profiling-onboarding-3-configure-profiling","type":"language","details":"dotnet/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/dotnet/profiling/","name":".NET","aliases":[],"categories":[]}},"electron":{"_self":{"key":"electron","type":"language","details":"electron.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/","name":"Electron","aliases":[],"categories":[]}},"elixir":{"_self":{"key":"elixir","type":"language","details":"elixir.json","doc_link":"https://docs.sentry.io/platforms/elixir/","name":"Elixir","aliases":[],"categories":[]}},"flutter":{"_self":{"key":"flutter","type":"framework","details":"flutter.json","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/","name":"Flutter","aliases":[],"categories":["mobile","browser","desktop"]},"profiling-onboarding-0-alert":{"key":"flutter.profiling-onboarding-0-alert","type":"language","details":"flutter/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"flutter.profiling-onboarding-1-install","type":"language","details":"flutter/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"flutter.profiling-onboarding-2-configure-performance","type":"language","details":"flutter/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"flutter.profiling-onboarding-3-configure-profiling","type":"language","details":"flutter/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[]}},"go":{"_self":{"key":"go","type":"language","details":"go.json","doc_link":"https://docs.sentry.io/platforms/go/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"go.profiling-onboarding-0-alert","type":"language","details":"go/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"go.profiling-onboarding-1-install","type":"language","details":"go/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"go.profiling-onboarding-2-configure-performance","type":"language","details":"go/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"go.profiling-onboarding-3-configure-profiling","type":"language","details":"go/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/go/profiling/","name":"Go","aliases":[],"categories":[]}},"ionic":{"_self":{"key":"ionic","type":"framework","details":"ionic.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/","name":"Ionic","aliases":[],"categories":[]}},"java":{"_self":{"key":"java","type":"language","details":"java.json","doc_link":"https://docs.sentry.io/platforms/java/","name":"Java","aliases":[],"categories":["desktop","server"]},"log4j2":{"key":"java.log4j2","type":"framework","details":"java/log4j2.json","doc_link":"https://docs.sentry.io/platforms/java/guides/log4j2/","name":"Log4j 2.x","aliases":[],"categories":["desktop","server"]},"logback":{"key":"java.logback","type":"framework","details":"java/logback.json","doc_link":"https://docs.sentry.io/platforms/java/guides/logback/","name":"Logback","aliases":[],"categories":["desktop","server"]},"spring-boot":{"key":"java.spring-boot","type":"framework","details":"java/spring-boot.json","doc_link":"https://docs.sentry.io/platforms/java/guides/spring-boot/","name":"Spring Boot","aliases":[],"categories":["desktop","server"]},"spring":{"key":"java.spring","type":"framework","details":"java/spring.json","doc_link":"https://https://docs.sentry.io/platforms/java/guides/spring/","name":"Spring","aliases":[],"categories":["desktop","server"]}},"javascript":{"_self":{"key":"javascript","type":"language","details":"javascript.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":["browser"]},"with-error-monitoring-and-performance":{"key":"javascript.with-error-monitoring-and-performance","type":"language","details":"javascript/with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring-and-replay":{"key":"javascript.with-error-monitoring-and-replay","type":"language","details":"javascript/with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring-performance-and-replay":{"key":"javascript.with-error-monitoring-performance-and-replay","type":"language","details":"javascript/with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"with-error-monitoring":{"key":"javascript.with-error-monitoring","type":"language","details":"javascript/with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/","name":"Browser JavaScript","aliases":[],"categories":[]},"angular":{"key":"javascript.angular","type":"framework","details":"javascript/angular.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":["browser"]},"angular-with-error-monitoring-and-performance":{"key":"javascript.angular-with-error-monitoring-and-performance","type":"framework","details":"javascript/angular-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring-and-replay":{"key":"javascript.angular-with-error-monitoring-and-replay","type":"framework","details":"javascript/angular-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring-performance-and-replay":{"key":"javascript.angular-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/angular-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"angular-with-error-monitoring":{"key":"javascript.angular-with-error-monitoring","type":"framework","details":"javascript/angular-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/angular/","name":"Angular","aliases":[],"categories":[]},"ember":{"key":"javascript.ember","type":"framework","details":"javascript/ember.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":["browser"]},"ember-with-error-monitoring-and-performance":{"key":"javascript.ember-with-error-monitoring-and-performance","type":"framework","details":"javascript/ember-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring-and-replay":{"key":"javascript.ember-with-error-monitoring-and-replay","type":"framework","details":"javascript/ember-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring-performance-and-replay":{"key":"javascript.ember-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/ember-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"ember-with-error-monitoring":{"key":"javascript.ember-with-error-monitoring","type":"framework","details":"javascript/ember-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/ember/","name":"Ember","aliases":[],"categories":[]},"gatsby":{"key":"javascript.gatsby","type":"framework","details":"javascript/gatsby.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":["browser"]},"gatsby-with-error-monitoring-and-performance":{"key":"javascript.gatsby-with-error-monitoring-and-performance","type":"framework","details":"javascript/gatsby-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring-and-replay":{"key":"javascript.gatsby-with-error-monitoring-and-replay","type":"framework","details":"javascript/gatsby-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring-performance-and-replay":{"key":"javascript.gatsby-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/gatsby-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"gatsby-with-error-monitoring":{"key":"javascript.gatsby-with-error-monitoring","type":"framework","details":"javascript/gatsby-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/gatsby/","name":"Gatsby","aliases":[],"categories":[]},"nextjs":{"key":"javascript.nextjs","type":"framework","details":"javascript/nextjs.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":["browser","server"]},"nextjs-with-error-monitoring-and-performance":{"key":"javascript.nextjs-with-error-monitoring-and-performance","type":"framework","details":"javascript/nextjs-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring-and-replay":{"key":"javascript.nextjs-with-error-monitoring-and-replay","type":"framework","details":"javascript/nextjs-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring-performance-and-replay":{"key":"javascript.nextjs-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/nextjs-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"nextjs-with-error-monitoring":{"key":"javascript.nextjs-with-error-monitoring","type":"framework","details":"javascript/nextjs-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/","name":"Next.js","aliases":[],"categories":[]},"react":{"key":"javascript.react","type":"framework","details":"javascript/react.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":["browser"]},"react-with-error-monitoring-and-performance":{"key":"javascript.react-with-error-monitoring-and-performance","type":"framework","details":"javascript/react-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring-and-replay":{"key":"javascript.react-with-error-monitoring-and-replay","type":"framework","details":"javascript/react-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring-performance-and-replay":{"key":"javascript.react-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/react-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"react-with-error-monitoring":{"key":"javascript.react-with-error-monitoring","type":"framework","details":"javascript/react-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/","name":"React","aliases":[],"categories":[]},"remix":{"key":"javascript.remix","type":"framework","details":"javascript/remix.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":["browser","server"]},"remix-with-error-monitoring-and-performance":{"key":"javascript.remix-with-error-monitoring-and-performance","type":"framework","details":"javascript/remix-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring-and-replay":{"key":"javascript.remix-with-error-monitoring-and-replay","type":"framework","details":"javascript/remix-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring-performance-and-replay":{"key":"javascript.remix-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/remix-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"remix-with-error-monitoring":{"key":"javascript.remix-with-error-monitoring","type":"framework","details":"javascript/remix-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/remix/","name":"Remix","aliases":[],"categories":[]},"svelte":{"key":"javascript.svelte","type":"framework","details":"javascript/svelte.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":["browser"]},"svelte-with-error-monitoring-and-performance":{"key":"javascript.svelte-with-error-monitoring-and-performance","type":"framework","details":"javascript/svelte-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring-and-replay":{"key":"javascript.svelte-with-error-monitoring-and-replay","type":"framework","details":"javascript/svelte-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring-performance-and-replay":{"key":"javascript.svelte-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/svelte-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"svelte-with-error-monitoring":{"key":"javascript.svelte-with-error-monitoring","type":"framework","details":"javascript/svelte-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/svelte/","name":"Svelte","aliases":[],"categories":[]},"sveltekit":{"key":"javascript.sveltekit","type":"framework","details":"javascript/sveltekit.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":["browser","server"]},"sveltekit-with-error-monitoring-and-performance":{"key":"javascript.sveltekit-with-error-monitoring-and-performance","type":"framework","details":"javascript/sveltekit-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring-and-replay":{"key":"javascript.sveltekit-with-error-monitoring-and-replay","type":"framework","details":"javascript/sveltekit-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring-performance-and-replay":{"key":"javascript.sveltekit-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/sveltekit-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"sveltekit-with-error-monitoring":{"key":"javascript.sveltekit-with-error-monitoring","type":"framework","details":"javascript/sveltekit-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/sveltekit/","name":"SvelteKit","aliases":[],"categories":[]},"vue":{"key":"javascript.vue","type":"framework","details":"javascript/vue.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":["browser"]},"vue-with-error-monitoring-and-performance":{"key":"javascript.vue-with-error-monitoring-and-performance","type":"framework","details":"javascript/vue-with-error-monitoring-and-performance.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring-and-replay":{"key":"javascript.vue-with-error-monitoring-and-replay","type":"framework","details":"javascript/vue-with-error-monitoring-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring-performance-and-replay":{"key":"javascript.vue-with-error-monitoring-performance-and-replay","type":"framework","details":"javascript/vue-with-error-monitoring-performance-and-replay.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"vue-with-error-monitoring":{"key":"javascript.vue-with-error-monitoring","type":"framework","details":"javascript/vue-with-error-monitoring.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/","name":"Vue","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"javascript.performance-onboarding-1-install","type":"language","details":"javascript/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"javascript.performance-onboarding-2-configure","type":"language","details":"javascript/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"javascript.performance-onboarding-3-verify","type":"language","details":"javascript/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/tracing/","name":"JavaScript","aliases":[],"categories":[]},"react-performance-onboarding-1-install":{"key":"javascript.react-performance-onboarding-1-install","type":"framework","details":"javascript/react-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-1-install":{"key":"javascript.nextjs-performance-onboarding-1-install","type":"framework","details":"javascript/nextjs-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"react-performance-onboarding-2-configure":{"key":"javascript.react-performance-onboarding-2-configure","type":"framework","details":"javascript/react-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-2-configure":{"key":"javascript.nextjs-performance-onboarding-2-configure","type":"framework","details":"javascript/nextjs-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"react-performance-onboarding-3-verify":{"key":"javascript.react-performance-onboarding-3-verify","type":"framework","details":"javascript/react-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/tracing/","name":"React","aliases":[],"categories":[]},"nextjs-performance-onboarding-3-verify":{"key":"javascript.nextjs-performance-onboarding-3-verify","type":"framework","details":"javascript/nextjs-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/nextjs/tracing/","name":"Next","aliases":[],"categories":[]},"angular-profiling-onboarding-1-install":{"key":"javascript.angular-profiling-onboarding-1-install","type":"framework","details":"javascript/angular-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/profiling/","name":"Angular (JS Self Profiling)","aliases":[],"categories":[]},"angular-profiling-onboarding-2-configure-document-policy":{"key":"javascript.angular-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/angular-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"angular-profiling-onboarding-3-configure":{"key":"javascript.angular-profiling-onboarding-3-configure","type":"framework","details":"javascript/angular-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"javascript.profiling-onboarding-1-install","type":"framework","details":"javascript/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-2-configure-document-policy":{"key":"javascript.profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"profiling-onboarding-3-configure":{"key":"javascript.profiling-onboarding-3-configure","type":"framework","details":"javascript/profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-1-install":{"key":"javascript.react-profiling-onboarding-1-install","type":"framework","details":"javascript/react-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-2-configure-document-policy":{"key":"javascript.react-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/react-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"react-profiling-onboarding-3-configure":{"key":"javascript.react-profiling-onboarding-3-configure","type":"framework","details":"javascript/react-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"React (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-1-install":{"key":"javascript.vue-profiling-onboarding-1-install","type":"framework","details":"javascript/vue-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/vue/profiling/","name":"Vue (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-2-configure-document-policy":{"key":"javascript.vue-profiling-onboarding-2-configure-document-policy","type":"framework","details":"javascript/vue-profiling-onboarding-2-configure-document-policy.json","doc_link":"https://docs.sentry.io/platforms/javascript/profiling/","name":"Browser (JS Self Profiling)","aliases":[],"categories":[]},"vue-profiling-onboarding-3-configure":{"key":"javascript.vue-profiling-onboarding-3-configure","type":"framework","details":"javascript/vue-profiling-onboarding-3-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/react/profiling/","name":"Vue (JS Self Profiling)","aliases":[],"categories":[]},"astro-replay-onboarding-1-install":{"key":"javascript.astro-replay-onboarding-1-install","type":"language","details":"javascript/astro-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/astro/session-replay/","name":"Astro","aliases":[],"categories":[]},"astro-replay-onboarding-2-configure":{"key":"javascript.astro-replay-onboarding-2-configure","type":"language","details":"javascript/astro-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/astro/session-replay/","name":"Astro","aliases":[],"categories":[]},"angular-replay-onboarding-1-install":{"key":"javascript.angular-replay-onboarding-1-install","type":"language","details":"javascript/angular-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"angular-replay-onboarding-2-configure":{"key":"javascript.angular-replay-onboarding-2-configure","type":"language","details":"javascript/angular-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"capacitor-replay-onboarding-1-install":{"key":"javascript.capacitor-replay-onboarding-1-install","type":"language","details":"javascript/capacitor-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/session-replay/","name":"Capacitor","aliases":[],"categories":[]},"capacitor-replay-onboarding-2-configure":{"key":"javascript.capacitor-replay-onboarding-2-configure","type":"language","details":"javascript/capacitor-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/capacitor/session-replay/","name":"JavaScript","aliases":[],"categories":[]},"electron-replay-onboarding-1-install":{"key":"javascript.electron-replay-onboarding-1-install","type":"framework","details":"javascript/electron-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/session-replay/","name":"Electron","aliases":[],"categories":[]},"electron-replay-onboarding-2-configure":{"key":"javascript.electron-replay-onboarding-2-configure","type":"framework","details":"javascript/electron-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/electron/session-replay/","name":"Electron","aliases":[],"categories":[]},"ember-replay-onboarding-1-install":{"key":"javascript.ember-replay-onboarding-1-install","type":"language","details":"javascript/ember-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"ember-replay-onboarding-2-configure":{"key":"javascript.ember-replay-onboarding-2-configure","type":"language","details":"javascript/ember-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"gatsby-replay-onboarding-1-install":{"key":"javascript.gatsby-replay-onboarding-1-install","type":"language","details":"javascript/gatsby-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"gatsby-replay-onboarding-2-configure":{"key":"javascript.gatsby-replay-onboarding-2-configure","type":"language","details":"javascript/gatsby-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"replay-onboarding-1-install":{"key":"javascript.replay-onboarding-1-install","type":"language","details":"javascript/replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"replay-onboarding-2-configure":{"key":"javascript.replay-onboarding-2-configure","type":"language","details":"javascript/replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"nextjs-replay-onboarding-1-install":{"key":"javascript.nextjs-replay-onboarding-1-install","type":"language","details":"javascript/nextjs-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"nextjs-replay-onboarding-2-configure":{"key":"javascript.nextjs-replay-onboarding-2-configure","type":"language","details":"javascript/nextjs-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"react-replay-onboarding-1-install":{"key":"javascript.react-replay-onboarding-1-install","type":"language","details":"javascript/react-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"react-replay-onboarding-2-configure":{"key":"javascript.react-replay-onboarding-2-configure","type":"language","details":"javascript/react-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"remix-replay-onboarding-1-install":{"key":"javascript.remix-replay-onboarding-1-install","type":"language","details":"javascript/remix-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"remix-replay-onboarding-2-configure":{"key":"javascript.remix-replay-onboarding-2-configure","type":"language","details":"javascript/remix-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"svelte-replay-onboarding-1-install":{"key":"javascript.svelte-replay-onboarding-1-install","type":"language","details":"javascript/svelte-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"svelte-replay-onboarding-2-configure":{"key":"javascript.svelte-replay-onboarding-2-configure","type":"language","details":"javascript/svelte-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"sveltekit-replay-onboarding-1-install":{"key":"javascript.sveltekit-replay-onboarding-1-install","type":"language","details":"javascript/sveltekit-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"sveltekit-replay-onboarding-2-configure":{"key":"javascript.sveltekit-replay-onboarding-2-configure","type":"language","details":"javascript/sveltekit-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"vue-replay-onboarding-1-install":{"key":"javascript.vue-replay-onboarding-1-install","type":"language","details":"javascript/vue-replay-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]},"vue-replay-onboarding-2-configure":{"key":"javascript.vue-replay-onboarding-2-configure","type":"language","details":"javascript/vue-replay-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/replay/","name":"JavaScript","aliases":[],"categories":[]}},"kotlin":{"_self":{"key":"kotlin","type":"language","details":"kotlin.json","doc_link":"https://docs.sentry.io/platforms/kotlin/","name":"Kotlin","aliases":[],"categories":["mobile","desktop","server"]}},"minidump":{"_self":{"key":"minidump","type":"framework","details":"minidump.json","doc_link":"https://docs.sentry.io/platforms/native/minidump/","name":"Minidump","aliases":[],"categories":[]}},"node":{"awslambda":{"key":"node.awslambda","type":"framework","details":"node/awslambda.json","doc_link":"https://docs.sentry.io/platforms/node/guides/aws-lambda/","name":"AWS Lambda (Node)","aliases":[],"categories":[]},"azurefunctions":{"key":"node.azurefunctions","type":"framework","details":"node/azurefunctions.json","doc_link":"https://docs.sentry.io/platforms/node/guides/azure-functions/","name":"Azure Functions (Node)","aliases":[],"categories":[]},"connect":{"key":"node.connect","type":"framework","details":"node/connect.json","doc_link":"https://docs.sentry.io/platforms/node/guides/connect/","name":"Connect","aliases":[],"categories":["browser"]},"express":{"key":"node.express","type":"framework","details":"node/express.json","doc_link":"https://docs.sentry.io/platforms/node/guides/express/","name":"Express","aliases":[],"categories":["browser"]},"gcpfunctions":{"key":"node.gcpfunctions","type":"framework","details":"node/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/node/guides/gcp-functions/","name":"Google Cloud Functions (Node)","aliases":[],"categories":[]},"_self":{"key":"node","type":"language","details":"node.json","doc_link":"https://docs.sentry.io/platforms/node/","name":"Node.js","aliases":[],"categories":["browser"]},"koa":{"key":"node.koa","type":"framework","details":"node/koa.json","doc_link":"https://docs.sentry.io/platforms/node/guides/koa/","name":"Koa","aliases":[],"categories":["browser"]},"serverlesscloud":{"key":"node.serverlesscloud","type":"framework","details":"node/serverlesscloud.json","doc_link":"https://docs.sentry.io/platforms/node/guides/serverless-cloud/","name":"Serverless (Node)","aliases":[],"categories":[]},"tracing":{"key":"node.tracing","type":"framework","details":"node/tracing.json","doc_link":"https://docs.sentry.io/platforms/node/tracing/instrumentation/custom-instrumentation/","name":"Node.js","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"node.performance-onboarding-1-install","type":"framework","details":"node/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"node.performance-onboarding-2-configure","type":"framework","details":"node/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]}, "performance-onboarding-3-verify":{"key":"node.performance-onboarding-3-verify","type":"framework","details":"node/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/javascript/guides/node/tracing/","name":"Node","aliases":[],"categories":[]}, "javascript-nextjs-profiling-onboarding-1-install":{"key":"node.javascript-nextjs-profiling-onboarding-1-install","type":"language","details":"node/javascript-nextjs-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-nextjs-profiling-onboarding-2-configure-performance":{"key":"node.javascript-nextjs-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-nextjs-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-nextjs-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-nextjs-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-nextjs-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Next.js","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-1-install":{"key":"node.javascript-remix-profiling-onboarding-1-install","type":"language","details":"node/javascript-remix-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-2-configure-performance":{"key":"node.javascript-remix-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-remix-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-remix-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-remix-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-remix-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Remix","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-1-install":{"key":"node.javascript-sveltekit-profiling-onboarding-1-install","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-2-configure-performance":{"key":"node.javascript-sveltekit-profiling-onboarding-2-configure-performance","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"javascript-sveltekit-profiling-onboarding-3-configure-profiling":{"key":"node.javascript-sveltekit-profiling-onboarding-3-configure-profiling","type":"language","details":"node/javascript-sveltekit-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"SvelteKit","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"node.profiling-onboarding-1-install","type":"language","details":"node/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"node.profiling-onboarding-2-configure-performance","type":"language","details":"node/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"node.profiling-onboarding-3-configure-profiling","type":"language","details":"node/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/node/profiling/","name":"Node","aliases":[],"categories":[]}},"native":{"_self":{"key":"native","type":"language","details":"native.json","doc_link":"https://docs.sentry.io/platforms/native/","name":"Native","aliases":[],"categories":["mobile","desktop"]},"qt":{"key":"native.qt","type":"framework","details":"native/qt.json","doc_link":"https://docs.sentry.io/platforms/native/guides/qt/","name":"Qt","aliases":[],"categories":["desktop","mobile"]}},"php":{"_self":{"key":"php","type":"language","details":"php.json","doc_link":"https://docs.sentry.io/platforms/php/","name":"PHP","aliases":[],"categories":[]},"laravel":{"key":"php.laravel","type":"framework","details":"php/laravel.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/","name":"Laravel","aliases":[],"categories":[]},"symfony":{"key":"php.symfony","type":"framework","details":"php/symfony.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/","name":"Symfony","aliases":[],"categories":[]},"performance-onboarding-1-install":{"key":"php.performance-onboarding-1-install","type":"language","details":"php/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"php.performance-onboarding-2-configure","type":"language","details":"php/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"php.performance-onboarding-3-verify","type":"language","details":"php/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/php/tracing/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-1-install":{"key":"php.laravel-profiling-onboarding-1-install","type":"language","details":"php/laravel-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-2-configure-performance":{"key":"php.laravel-profiling-onboarding-2-configure-performance","type":"language","details":"php/laravel-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"laravel-profiling-onboarding-3-configure-profiling":{"key":"php.laravel-profiling-onboarding-3-configure-profiling","type":"language","details":"php/laravel-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/guides/laravel/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"php.profiling-onboarding-1-install","type":"language","details":"php/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"php.profiling-onboarding-2-configure-performance","type":"language","details":"php/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"php.profiling-onboarding-3-configure-profiling","type":"language","details":"php/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-1-install":{"key":"php.symfony2-profiling-onboarding-1-install","type":"language","details":"php/symfony2-profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-2-configure-performance":{"key":"php.symfony2-profiling-onboarding-2-configure-performance","type":"language","details":"php/symfony2-profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]},"symfony2-profiling-onboarding-3-configure-profiling":{"key":"php.symfony2-profiling-onboarding-3-configure-profiling","type":"language","details":"php/symfony2-profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/php/guides/symfony/profiling/","name":"PHP","aliases":[],"categories":[]}},"python":{"performance-onboarding-1-install":{"key":"python.performance-onboarding-1-install","type":"language","details":"python/performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"django-performance-onboarding-1-install":{"key":"python.django-performance-onboarding-1-install","type":"framework","details":"python/django-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-1-install":{"key":"python.flask-performance-onboarding-1-install","type":"framework","details":"python/flask-performance-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"performance-onboarding-3-verify":{"key":"python.performance-onboarding-3-verify","type":"language","details":"python/performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"performance-onboarding-2-configure":{"key":"python.performance-onboarding-2-configure","type":"language","details":"python/performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"django-performance-onboarding-2-configure":{"key":"python.django-performance-onboarding-2-configure","type":"framework","details":"python/django-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-2-configure":{"key":"python.flask-performance-onboarding-2-configure","type":"framework","details":"python/flask-performance-onboarding-2-configure.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"django-performance-onboarding-3-verify":{"key":"python.django-performance-onboarding-3-verify","type":"framework","details":"python/django-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/django/","name":"Django","aliases":[],"categories":[]},"flask-performance-onboarding-3-verify":{"key":"python.flask-performance-onboarding-3-verify","type":"framework","details":"python/flask-performance-onboarding-3-verify.json","doc_link":"https://docs.sentry.io/platforms/python/integrations/flask/","name":"Flask","aliases":[],"categories":[]},"aiohttp":{"key":"python.aiohttp","type":"framework","details":"python/aiohttp.json","doc_link":"https://docs.sentry.io/platforms/python/guides/aiohttp/","name":"AIOHTTP","aliases":[],"categories":[]},"asgi":{"key":"python.asgi","type":"framework","details":"python/asgi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/asgi/","name":"ASGI","aliases":[],"categories":[]},"awslambda":{"key":"python.awslambda","type":"framework","details":"python/awslambda.json","doc_link":"https://docs.sentry.io/platforms/python/guides/aws-lambda/","name":"AWS Lambda (Python)","aliases":[],"categories":[]},"bottle":{"key":"python.bottle","type":"framework","details":"python/bottle.json","doc_link":"https://docs.sentry.io/platforms/python/guides/bottle/","name":"Bottle","aliases":[],"categories":[]},"celery":{"key":"python.celery","type":"library","details":"python/celery.json","doc_link":"https://docs.sentry.io/platforms/python/guides/celery/","name":"Celery","aliases":[],"categories":[]},"chalice":{"key":"python.chalice","type":"framework","details":"python/chalice.json","doc_link":"https://docs.sentry.io/platforms/python/guides/chalice/","name":"Chalice","aliases":[],"categories":[]},"django":{"key":"python.django","type":"framework","details":"python/django.json","doc_link":"https://docs.sentry.io/platforms/python/guides/django/","name":"Django","aliases":[],"categories":[]},"falcon":{"key":"python.falcon","type":"framework","details":"python/falcon.json","doc_link":"https://docs.sentry.io/platforms/python/guides/falcon/","name":"Falcon","aliases":[],"categories":[]},"fastapi":{"key":"python.fastapi","type":"framework","details":"python/fastapi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/fastapi/","name":"FastAPI","aliases":[],"categories":[]},"flask":{"key":"python.flask","type":"framework","details":"python/flask.json","doc_link":"https://docs.sentry.io/platforms/python/guides/flask/","name":"Flask","aliases":[],"categories":[]},"gcpfunctions":{"key":"python.gcpfunctions","type":"framework","details":"python/gcpfunctions.json","doc_link":"https://docs.sentry.io/platforms/python/guides/gcp-functions/","name":"Google Cloud Functions (Python)","aliases":[],"categories":[]},"_self":{"key":"python","type":"language","details":"python.json","doc_link":"https://docs.sentry.io/platforms/python/","name":"Python","aliases":[],"categories":[]},"pylons":{"key":"python.pylons","type":"framework","details":"python/pylons.json","doc_link":"https://docs.sentry.io/platforms/python/legacy-sdk/integrations/pylons/","name":"Pylons","aliases":[],"categories":[]},"pymongo":{"key":"python.pymongo","type":"library","details":"python/pymongo.json","doc_link":"https://docs.sentry.io/platforms/python/guides/pymongo/","name":"PyMongo","aliases":[],"categories":[]},"pyramid":{"key":"python.pyramid","type":"framework","details":"python/pyramid.json","doc_link":"https://docs.sentry.io/platforms/python/pyramid/","name":"Pyramid","aliases":[],"categories":[]},"quart":{"key":"python.quart","type":"framework","details":"python/quart.json","doc_link":"https://docs.sentry.io/platforms/python/guides/quart/","name":"Quart","aliases":[],"categories":[]},"rq":{"key":"python.rq","type":"library","details":"python/rq.json","doc_link":"https://docs.sentry.io/platforms/python/guides/rq/","name":"RQ (Redis Queue)","aliases":[],"categories":[]},"sanic":{"key":"python.sanic","type":"framework","details":"python/sanic.json","doc_link":"https://docs.sentry.io/platforms/python/guides/sanic/","name":"Sanic","aliases":[],"categories":[]},"serverless":{"key":"python.serverless","type":"framework","details":"python/serverless.json","doc_link":"https://docs.sentry.io/platforms/python/guides/serverless/","name":"Serverless (Python)","aliases":[],"categories":[]},"starlette":{"key":"python.starlette","type":"framework","details":"python/starlette.json","doc_link":"https://docs.sentry.io/platforms/python/guides/starlette/","name":"Starlette","aliases":[],"categories":[]},"tornado":{"key":"python.tornado","type":"framework","details":"python/tornado.json","doc_link":"https://docs.sentry.io/platforms/python/guides/tornado/","name":"Tornado","aliases":[],"categories":[]},"tracing":{"key":"python.tracing","type":"language","details":"python/tracing.json","doc_link":"https://docs.sentry.io/platforms/python/tracing/","name":"Python","aliases":[],"categories":[]},"tryton":{"key":"python.tryton","type":"framework","details":"python/tryton.json","doc_link":"https://docs.sentry.io/platforms/python/guides/tryton/","name":"Tryton","aliases":[],"categories":[]},"wsgi":{"key":"python.wsgi","type":"framework","details":"python/wsgi.json","doc_link":"https://docs.sentry.io/platforms/python/guides/wsgi/","name":"WSGI","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"python.profiling-onboarding-1-install","type":"language","details":"python/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"python.profiling-onboarding-2-configure-performance","type":"language","details":"python/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"python.profiling-onboarding-3-configure-profiling","type":"language","details":"python/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/python/profiling/","name":"Python","aliases":[],"categories":[]}},"react-native":{"_self":{"key":"react-native","type":"language","details":"react-native.json","doc_link":"https://docs.sentry.io/platforms/react-native/","name":"React Native","aliases":[],"categories":["mobile"]},"tracing":{"key":"react-native.tracing","type":"language","details":"react-native/tracing.json","doc_link":"https://docs.sentry.io/platforms/react-native/tracing/instrumentation/custom-instrumentation/","name":"React-Native","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"react-native.profiling-onboarding-0-alert","type":"language","details":"react-native/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"react-native.profiling-onboarding-1-install","type":"language","details":"react-native/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"react-native.profiling-onboarding-2-configure-performance","type":"language","details":"react-native/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"react-native.profiling-onboarding-3-configure-profiling","type":"language","details":"react-native/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/react-native/profiling/","name":"React Native","aliases":[],"categories":[]}},"ruby":{"_self":{"key":"ruby","type":"language","details":"ruby.json","doc_link":"https://docs.sentry.io/platforms/ruby/","name":"Ruby","aliases":[],"categories":[]},"rack":{"key":"ruby.rack","type":"framework","details":"ruby/rack.json","doc_link":"https://docs.sentry.io/platforms/ruby/guides/rack/","name":"Rack Middleware","aliases":[],"categories":[]},"rails":{"key":"ruby.rails","type":"framework","details":"ruby/rails.json","doc_link":"https://docs.sentry.io/platforms/ruby/guides/rails/","name":"Rails","aliases":[],"categories":[]},"profiling-onboarding-0-alert":{"key":"ruby.profiling-onboarding-0-alert","type":"language","details":"ruby/profiling-onboarding-0-alert.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-1-install":{"key":"ruby.profiling-onboarding-1-install","type":"language","details":"ruby/profiling-onboarding-1-install.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-2-configure-performance":{"key":"ruby.profiling-onboarding-2-configure-performance","type":"language","details":"ruby/profiling-onboarding-2-configure-performance.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]},"profiling-onboarding-3-configure-profiling":{"key":"ruby.profiling-onboarding-3-configure-profiling","type":"language","details":"ruby/profiling-onboarding-3-configure-profiling.json","doc_link":"https://docs.sentry.io/platforms/ruby/profiling/","name":"Ruby","aliases":[],"categories":[]}},"rust":{"_self":{"key":"rust","type":"language","details":"rust.json","doc_link":"https://docs.sentry.io/platforms/rust/","name":"Rust","aliases":[],"categories":[]}},"unity":{"_self":{"key":"unity","type":"framework","details":"unity.json","doc_link":"https://docs.sentry.io/platforms/unity/","name":"Unity","aliases":[],"categories":["mobile","browser","desktop","console","gaming"]}},"unreal":{"_self":{"key":"unreal","type":"framework","details":"unreal.json","doc_link":"https://docs.sentry.io/platforms/unreal/","name":"Unreal Engine","aliases":[],"categories":["mobile","desktop","console","gaming"]}}}} diff --git a/public/_platforms/flutter.json b/public/_platforms/flutter.json index 306b959ba57a51..78c48ba5d118a2 100644 --- a/public/_platforms/flutter.json +++ b/public/_platforms/flutter.json @@ -1 +1 @@ -{"key":"flutter","type":"framework","doc_link":"https://docs.sentry.io/platforms/flutter/","name":"Flutter","aliases":[],"categories":["mobile","browser","desktop"],"body":"

Sentry captures data by using an SDK within your application’s runtime. Add the following to your pubspec.yaml:

\n
dependencies:\n  sentry_flutter: ^7.15.0
\n

Import sentry_flutter and initialize it:

\n
import 'package:flutter/widgets.dart';\nimport 'package:sentry_flutter/sentry_flutter.dart';\n\nFuture<void> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = '___PUBLIC_DSN___';\n      // Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.\n      // We recommend adjusting this value in production.\n      options.tracesSampleRate = 1.0;\n    },\n    appRunner: () => runApp(MyApp()),\n  );\n\n  // or define SENTRY_DSN via Dart environment variable (--dart-define)\n}
\n

You can configure the SENTRY_DSN, SENTRY_RELEASE, SENTRY_DIST, and SENTRY_ENVIRONMENT via the Dart environment variables passing the --dart-define flag to the compiler, as noted in the code sample.

\n

Then create an intentional error, so you can test that everything is working:

\n
import 'package:sentry/sentry.dart';\n\ntry {\n  aMethodThatMightFail();\n} catch (exception, stackTrace) {\n  await Sentry.captureException(\n    exception,\n    stackTrace: stackTrace,\n  );\n}
\n

If you're new to Sentry, use the email alert to access your account and complete a product tour.

\n

If you're an existing user and have disabled alerts, you won't receive this email.

\n

Performance

\n

You'll be able to monitor the performance of your app using the SDK.\nFor example:

\n
import 'package:sentry/sentry.dart';\n\nfinal transaction = Sentry.startTransaction('processOrderBatch()', 'task');\n\ntry {\n  await processOrderBatch(transaction);\n} catch (exception) {\n  transaction.throwable = exception;\n  transaction.status = SpanStatus.internalError();\n} finally {\n  await transaction.finish();\n}\n\nFuture<void> processOrderBatch(ISentrySpan span) async {\n  // span operation: task, span description: operation\n  final innerSpan = span.startChild('task', description: 'operation');\n\n  try {\n    // omitted code\n  } catch (exception) {\n    innerSpan.throwable = exception;\n    innerSpan.status = SpanStatus.notFound();\n  } finally {\n    await innerSpan.finish();\n  }\n}
\n

To learn more about the API and automatic instrumentations, check out the performance documentation .

\n

Debug Symbols

\n

We offer a range of methods to provide Sentry with debug symbols so that you can see symbolicated stack traces and triage issues faster.

\n

Complete stack traces will be shown for your Dart error by default, but if you use split-debug-info and obfuscate, you'll need to upload the debug information files generated by the flutter build.

\n

You'll also need to upload the debug information files generated by the flutter build for iOS, macOS, and Android NDK native crashes.

\n

Source Context

\n

If Sentry has access to your application's source code, it can show snippets of code (source context) around the location of stack frames, which helps to quickly pinpoint problematic code.

\n

To enable source context, you'll need to upload debug symbols to Sentry by following the Uploading Source Code Context for Flutter Android, iOS, and macOS guide.

"} +{"key":"flutter","type":"framework","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/","name":"Flutter","aliases":[],"categories":["mobile","browser","desktop"],"body":"

Sentry captures data by using an SDK within your application’s runtime. Add the following to your pubspec.yaml:

\n
dependencies:\n  sentry_flutter: ^7.15.0
\n

Import sentry_flutter and initialize it:

\n
import 'package:flutter/widgets.dart';\nimport 'package:sentry_flutter/sentry_flutter.dart';\n\nFuture<void> main() async {\n  await SentryFlutter.init(\n    (options) {\n      options.dsn = '___PUBLIC_DSN___';\n      // Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.\n      // We recommend adjusting this value in production.\n      options.tracesSampleRate = 1.0;\n    },\n    appRunner: () => runApp(MyApp()),\n  );\n\n  // or define SENTRY_DSN via Dart environment variable (--dart-define)\n}
\n

You can configure the SENTRY_DSN, SENTRY_RELEASE, SENTRY_DIST, and SENTRY_ENVIRONMENT via the Dart environment variables passing the --dart-define flag to the compiler, as noted in the code sample.

\n

Then create an intentional error, so you can test that everything is working:

\n
import 'package:sentry/sentry.dart';\n\ntry {\n  aMethodThatMightFail();\n} catch (exception, stackTrace) {\n  await Sentry.captureException(\n    exception,\n    stackTrace: stackTrace,\n  );\n}
\n

If you're new to Sentry, use the email alert to access your account and complete a product tour.

\n

If you're an existing user and have disabled alerts, you won't receive this email.

\n

Performance

\n

You'll be able to monitor the performance of your app using the SDK.\nFor example:

\n
import 'package:sentry/sentry.dart';\n\nfinal transaction = Sentry.startTransaction('processOrderBatch()', 'task');\n\ntry {\n  await processOrderBatch(transaction);\n} catch (exception) {\n  transaction.throwable = exception;\n  transaction.status = SpanStatus.internalError();\n} finally {\n  await transaction.finish();\n}\n\nFuture<void> processOrderBatch(ISentrySpan span) async {\n  // span operation: task, span description: operation\n  final innerSpan = span.startChild('task', description: 'operation');\n\n  try {\n    // omitted code\n  } catch (exception) {\n    innerSpan.throwable = exception;\n    innerSpan.status = SpanStatus.notFound();\n  } finally {\n    await innerSpan.finish();\n  }\n}
\n

To learn more about the API and automatic instrumentations, check out the performance documentation .

\n

Debug Symbols

\n

We offer a range of methods to provide Sentry with debug symbols so that you can see symbolicated stack traces and triage issues faster.

\n

Complete stack traces will be shown for your Dart error by default, but if you use split-debug-info and obfuscate, you'll need to upload the debug information files generated by the flutter build.

\n

You'll also need to upload the debug information files generated by the flutter build for iOS, macOS, and Android NDK native crashes.

\n

Source Context

\n

If Sentry has access to your application's source code, it can show snippets of code (source context) around the location of stack frames, which helps to quickly pinpoint problematic code.

\n

To enable source context, you'll need to upload debug symbols to Sentry by following the Uploading Source Code Context for Flutter Android, iOS, and macOS guide.

"} diff --git a/public/_platforms/flutter/profiling-onboarding-0-alert.json b/public/_platforms/flutter/profiling-onboarding-0-alert.json index 1bc53dee2f4781..c439a0f77cfb4c 100644 --- a/public/_platforms/flutter/profiling-onboarding-0-alert.json +++ b/public/_platforms/flutter/profiling-onboarding-0-alert.json @@ -1 +1 @@ -{"key":"flutter.profiling-onboarding-0-alert","type":"language","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"
\nProfiling in Flutter is currently available for iOS and macOS in alpha, and there may be some bugs. We recognize the irony.\n
"} \ No newline at end of file +{"key":"flutter.profiling-onboarding-0-alert","type":"language","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"
\nProfiling in Flutter is currently available for iOS and macOS in alpha, and there may be some bugs. We recognize the irony.\n
"} \ No newline at end of file diff --git a/public/_platforms/flutter/profiling-onboarding-1-install.json b/public/_platforms/flutter/profiling-onboarding-1-install.json index e21e362cc284b4..e1f602519d496f 100644 --- a/public/_platforms/flutter/profiling-onboarding-1-install.json +++ b/public/_platforms/flutter/profiling-onboarding-1-install.json @@ -1 +1 @@ -{"key":"flutter.profiling-onboarding-1-install","type":"language","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Install

\n

For the Profiling integration to work, you must use the Sentry Flutter SDK package (minimum version v7.12.0). Learn more about installation methods in our full documentation.

"} \ No newline at end of file +{"key":"flutter.profiling-onboarding-1-install","type":"language","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Install

\n

For the Profiling integration to work, you must use the Sentry Flutter SDK package (minimum version v7.12.0). Learn more about installation methods in our full documentation.

"} \ No newline at end of file diff --git a/public/_platforms/flutter/profiling-onboarding-2-configure-performance.json b/public/_platforms/flutter/profiling-onboarding-2-configure-performance.json index db841f9f750376..918e8fcda22637 100644 --- a/public/_platforms/flutter/profiling-onboarding-2-configure-performance.json +++ b/public/_platforms/flutter/profiling-onboarding-2-configure-performance.json @@ -1 +1 @@ -{"key":"flutter.profiling-onboarding-2-configure-performance","type":"language","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Configure Performance

\n

Sentry’s performance monitoring product has to be enabled in order for Profiling to work. To enable performance monitoring in the SDK:

\n
SentryFlutter.init(\n  (options) => {\n    options.dsn = '___PUBLIC_DSN___';\n    // We recommend adjusting this value in production:\n    options.tracesSampleRate = 1.0;\n  },\n  appRunner: () => runApp(MyApp()),\n);
"} \ No newline at end of file +{"key":"flutter.profiling-onboarding-2-configure-performance","type":"language","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Configure Performance

\n

Sentry’s performance monitoring product has to be enabled in order for Profiling to work. To enable performance monitoring in the SDK:

\n
SentryFlutter.init(\n  (options) => {\n    options.dsn = '___PUBLIC_DSN___';\n    // We recommend adjusting this value in production:\n    options.tracesSampleRate = 1.0;\n  },\n  appRunner: () => runApp(MyApp()),\n);
"} \ No newline at end of file diff --git a/public/_platforms/flutter/profiling-onboarding-3-configure-profiling.json b/public/_platforms/flutter/profiling-onboarding-3-configure-profiling.json index ada7d4a6f9cad0..96abbb94f966d2 100644 --- a/public/_platforms/flutter/profiling-onboarding-3-configure-profiling.json +++ b/public/_platforms/flutter/profiling-onboarding-3-configure-profiling.json @@ -1 +1 @@ -{"key":"flutter.profiling-onboarding-3-configure-profiling","type":"language","doc_link":"https://docs.sentry.io/platforms/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Configure Profiling

\n

Add the ProfilesSampleRate option to your SDK config.

\n
SentryFlutter.init(\n  (options) => {\n    options.dsn = '___PUBLIC_DSN___';\n    // We recommend adjusting this value in production:\n    options.tracesSampleRate = 1.0;\n    // The sampling rate for profiling is relative to tracesSampleRate\n    // Setting to 1.0 will profile 100% of sampled transactions:\n    options.profilesSampleRate = 1.0;\n  },\n  appRunner: () => runApp(MyApp()),\n);
"} \ No newline at end of file +{"key":"flutter.profiling-onboarding-3-configure-profiling","type":"language","doc_link":"https://docs.sentry.io/platforms/dart/guides/flutter/profiling/","name":"Flutter","aliases":[],"categories":[],"body":"

Configure Profiling

\n

Add the ProfilesSampleRate option to your SDK config.

\n
SentryFlutter.init(\n  (options) => {\n    options.dsn = '___PUBLIC_DSN___';\n    // We recommend adjusting this value in production:\n    options.tracesSampleRate = 1.0;\n    // The sampling rate for profiling is relative to tracesSampleRate\n    // Setting to 1.0 will profile 100% of sampled transactions:\n    options.profilesSampleRate = 1.0;\n  },\n  appRunner: () => runApp(MyApp()),\n);
"} \ No newline at end of file diff --git a/redirects.js b/redirects.js index bf85b7eb7525b4..f88147475af002 100644 --- a/redirects.js +++ b/redirects.js @@ -997,6 +997,18 @@ const userDocsRedirects = [ source: '/platforms/php/:productfeature/troubleshooting/:path*', destination: '/platforms/php/troubleshooting/:path*', }, + { + source: '/platforms/flutter/:path*', + destination: '/platforms/dart/guides/flutter/:path*', + }, + { + source: '/platforms/dart/guides/flutter/configuration/integrations/:path*', + destination: '/platforms/dart/guides/flutter/integrations/:path*', + }, + { + source: '/platforms/dart/guides/flutter/usage/advanced-usage/:path*', + destination: '/platforms/dart/guides/flutter/troubleshooting/:path*', + }, ]; /** diff --git a/src/components/banner/index.tsx b/src/components/banner/index.tsx index 4f32633ab55516..32cbc60f4006ba 100644 --- a/src/components/banner/index.tsx +++ b/src/components/banner/index.tsx @@ -56,7 +56,7 @@ const BANNERS: BannerType[] = [ }, { appearsOn: [ - '^/platforms/flutter/', + '^/platforms/dart/guides/flutter/', '^/platforms/react-native/', '^/platforms/android/', '^/platforms/apple/guides/ios/', diff --git a/src/components/platformIcon.tsx b/src/components/platformIcon.tsx index 86f4673b800280..7dfaed4f3d2c46 100644 --- a/src/components/platformIcon.tsx +++ b/src/components/platformIcon.tsx @@ -855,6 +855,7 @@ export const PLATFORM_TO_ICON = { csharp: 'csharp', 'csharp-aspnetcore': 'csharp', dart: 'dart', + 'dart-flutter': 'flutter', default: 'default', dotnet: 'dotnet', 'dotnet-aspnetcore': 'dotnetcore',