diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b377ed520b406..32a8e475c89cb 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 b0dc4726a7f5a..bb35de060c989 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 b5e0b7c23c8d6..4b5af90d511b1 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 90d6deed49cd1..e089d659ea2f8 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 df195309dc364..bf858d2c11b27 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 7236fc90bbe63..131e25398cfc8 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 c4654a5059cc6..451123ef0253d 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 2a0a7cad75eb6..ac65d08c5c10d 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 768a80ad49e2a..faf4d7645e544 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 af5f70d65be2e..2a295ed74d7ee 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 617ecb2b5debd..9c20ff73efcd8 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 c7103143a8de7..567be69e7c9ef 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 112887b3b771b..3d1076a9ca1fd 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 e3379ed53aec1..c154427cb91b7 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 b10dd01c3e4f6..767cbd38cc3bc 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 6e9c95bcb577e..33c9450fb3338 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 73e15df76c89f..d8172404f62cd 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 dc9b0abf371e2..c6e2ef5647eb7 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 733c581790908..1a27fdb5c3c32 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 4b26b317d3b5a..f11d45b88249e 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 fc9856334157e..3a2abfca1dfcd 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 4fd2492918a99..4d3680f39699d 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 c1061339a3918..643e213014c34 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 5712d35cca17d..7e1a00d609689 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 dee6b628a7c55..a288bc41af14d 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 80048c84de70e..23ee4426da546 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 c47697b82fe66..2457fc169f1de 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 0c4aa412a9244..e7a8da48dfa57 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 704280ffba754..146acb86e6a32 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 81a121c088651..90b721d8d959e 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 306b959ba57a5..78c48ba5d118a 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 1bc53dee2f478..c439a0f77cfb4 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 e21e362cc284b..e1f602519d496 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 db841f9f75037..918e8fcda2263 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 ada7d4a6f9cad..96abbb94f966d 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 bf85b7eb7525b..f88147475af00 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 4f32633ab5551..32cbc60f4006b 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 86f4673b80028..7dfaed4f3d2c4 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',