diff --git a/contents/docs/libraries/kmp/index.mdx b/contents/docs/libraries/kmp/index.mdx
index 463d22a4f6ba..516added8a32 100644
--- a/contents/docs/libraries/kmp/index.mdx
+++ b/contents/docs/libraries/kmp/index.mdx
@@ -547,29 +547,20 @@ PostHog.setup(
)
```
-You can also enable experimental screenshot mode instead of the default wireframe recording:
+Recordings are masked screenshots on Android and iOS. Screenshots show everything that isn't masked, including custom-drawn views, maps, and video, so make sure masking covers anything sensitive. See [how mobile replay works](/docs/session-replay/mobile#how-it-works).
-```kotlin
-sessionRecording = SessionRecordingConfig(
- enabled = true,
- screenshot = true, // capture screenshots instead of wireframes
- maskAllImages = true, // recommended when using screenshots
-)
-```
-
-> **Warning:** Screenshots may contain sensitive information. Make sure masking is configured appropriately before enabling screenshot mode.
+> **Note:** Version 0.11.0 removes the `screenshot` option, because the native Android and iOS 4.0 SDKs always record screenshots. Delete it from your `SessionRecordingConfig` when you upgrade. Earlier versions record wireframes unless `screenshot = true`.
On Android, enable experimental mask-alignment verification to help preserve screenshot captures during pixel-only redraws, such as continuously animated content:
```kotlin
sessionRecording = SessionRecordingConfig(
enabled = true,
- screenshot = true,
verifyScreenshotMaskAlignment = true,
)
```
-`verifyScreenshotMaskAlignment` defaults to `false` and only affects Android screenshot mode. It adds view-hierarchy walks during capture, so evaluate its performance in your app. Windows with a Compose root already use verification regardless of this flag; setting it to `false` doesn't disable verification for those windows. Other platforms ignore this option.
+`verifyScreenshotMaskAlignment` defaults to `false` and only affects Android. It adds view-hierarchy walks during capture, so evaluate its performance in your app. Windows with a Compose root already use verification regardless of this flag; setting it to `false` doesn't disable verification for those windows. Other platforms ignore this option.
## Opt out of data capture
@@ -705,10 +696,9 @@ Pass a `SessionRecordingConfig` to `PostHogConfig.sessionRecording`. Defaults ma
| `maskAllImages` | `Boolean` | `true` | Masks all images. |
| `captureNetworkTelemetry` | `Boolean` | `true` | Includes network requests in the recording. |
| `captureLogs` | `Boolean` | `false` | Captures console and system logs (iOS and web). |
-| `screenshot` | `Boolean` | `false` | Uses screenshots instead of wireframes (experimental, Android and iOS). |
| `captureLogcat` | `Boolean` | `true` | Captures Android logcat output (Android only). |
| `debouncerDelayMs` | `Long` | `1000` | Touch event debounce delay in milliseconds (Android only). |
-| `verifyScreenshotMaskAlignment` | `Boolean` | `false` | Experimental mask-alignment verification for Android screenshot mode. Adds view-hierarchy walks during capture. Compose-rooted windows always use verification. Ignored on other platforms. |
+| `verifyScreenshotMaskAlignment` | `Boolean` | `false` | Experimental mask-alignment verification for Android screenshot captures. Adds view-hierarchy walks during capture. Compose-rooted windows always use verification. Ignored on other platforms. |
## Platform support
diff --git a/contents/docs/session-replay/installation/index.mdx b/contents/docs/session-replay/installation/index.mdx
index df54de486cb8..058a540868f4 100644
--- a/contents/docs/session-replay/installation/index.mdx
+++ b/contents/docs/session-replay/installation/index.mdx
@@ -13,4 +13,4 @@ Session replay enables you to record users navigating through your website or mo
-> **Note:** Web has the most complete feature support. Mobile platforms have some limitations like wireframe-only mode (unless screenshot mode is enabled) and no keyboard capture. See each platform's page for details.
+> **Note:** Web has the most complete feature support. Mobile platforms have some limitations, like no keyboard capture. See each platform's page for details.
diff --git a/contents/docs/session-replay/mobile.mdx b/contents/docs/session-replay/mobile.mdx
index 0c6c835376d6..64c7856c7774 100644
--- a/contents/docs/session-replay/mobile.mdx
+++ b/contents/docs/session-replay/mobile.mdx
@@ -10,27 +10,29 @@ Mobile session replay enables you to record user sessions in mobile apps. This i
We have taken our time to make sure we provide a useful and detailed recording experience whilst keeping the performance and security of your app as a top priority. By default, the configuration is restrictive with automatic masking.
-### Wireframe mode (default)
+### Screenshot mode
-> **Note:** Wireframe mode is available in native [Android](/docs/session-replay/installation/android) and [iOS](/docs/session-replay/installation/ios) SDKs. [React Native](/docs/session-replay/installation/react-native) and [Flutter](/docs/session-replay/installation/flutter) always record in [screenshot mode](#screenshot-mode).
+The SDK takes a screenshot of the screen when it changes and masks sensitive views before the image leaves the device. Text inputs and images are masked by default, and you can mask any other view yourself. Check your platform's page for the masking options.
-Mobile recording is primarily done using native APIs to grab the view hierarchy state when the screen is drawn. This is done carefully so as not to affect performance in any way a user may notice.
+Screenshots show everything on screen that isn't masked, including custom-drawn views, maps, and video, so make sure you're masking all relevant views.
-The view hierarchy is transformed to a JSON data structure and later rendered as an HTML [wireframe](https://www.figma.com/resource-library/what-is-wireframing/). Since it is a wireframe, the UI won't have the original look and feel but it should be close enough to understand the user's behavior.
+On iOS, a `WKWebView` is masked whole when `maskAllTextInputs` or `maskAllImages` is on, and recorded in full when both are off.
-Below is an example of a screen captured in wireframe mode in Android:
+All SDKs record in screenshot mode: [Android](/docs/session-replay/installation/android) and [iOS](/docs/session-replay/installation/ios) from version 4.0, and [React Native](/docs/session-replay/installation/react-native) and [Flutter](/docs/session-replay/installation/flutter) in every version. This isn't configurable.
-
+Below is an example of a screen captured in screenshot mode in Android:
-### Screenshot mode
+
-If `screenshot` (Android) or `screenshotMode` (iOS) option is enabled, the SDK will take a screenshot of the screen instead of a wireframe representation. The screenshot may contain sensitive information, so proceed with caution and ensure you're masking all relevant views.
+### Wireframe mode (Android and iOS before 4.0)
-The React Native and Flutter SDKs always record in screenshot mode. Currently, this is not configurable.
+Versions of the native Android and iOS SDKs before 4.0 record in wireframe mode by default. The SDK reads the view hierarchy when the screen is drawn and sends it as JSON, which is rendered as an HTML [wireframe](https://www.figma.com/resource-library/what-is-wireframing/). The UI won't have the original look and feel, but it's close enough to see how people use your app. On iOS, wireframe mode doesn't record SwiftUI screens.
-Below is an example of a screen captured in screenshot mode in Android:
+To record screenshots on these versions, set `screenshot` (Android) or `screenshotMode` (iOS) to `true`. Version 4.0 removes wireframe mode and both options.
-
+Below is an example of a screen captured in wireframe mode in Android:
+
+
## Next steps
diff --git a/contents/docs/session-replay/start-here.mdx b/contents/docs/session-replay/start-here.mdx
index 6c0a0496001b..35ea71dfbf9c 100644
--- a/contents/docs/session-replay/start-here.mdx
+++ b/contents/docs/session-replay/start-here.mdx
@@ -15,7 +15,7 @@ import { IconRewindPlay, IconBolt, IconMagic, IconPerson } from '@posthog/icons'
Add a PostHog SDK to your app and enable session recording. Web needs a snippet or the JavaScript SDK; mobile apps use the React Native, iOS, Android, or Flutter SDKs. Recording is a project setting, so you also have to switch it on in [project settings](https://app.posthog.com/settings/project-replay) before anything is captured.
-Web has the most complete feature support. Mobile has a few limits, like wireframe-only mode unless you turn on screenshot mode, so check your platform's page.
+Web has the most complete feature support. Mobile has a few limits, like no keyboard capture, so check your platform's page.
Install session replay