---
title: "Advanced"
url: "https://developer.incode.com/sdk-reference/advanced/"
section: "sdk-reference"
group: "Incode Web SDK 2 Reference / Advanced"
version: "v1.1"
status: "live"
---
# Advanced

The pages in this section cover the parts of WebSDK 2.0 you'll reach for once the default integration isn't quite enough: building your own UI, wiring up ML pipelines, encrypting traffic end-to-end, and tracking events for your dashboard.

Most integrations never need this section. Start here if you're building a fully custom interface, integrating on a non-web platform, hardening a compliance-sensitive deployment, or troubleshooting something below the pre-built components.

- **[Headless Mode](/sdk-reference/web-sdk-2-headless-mode)**: Use the SDK's core verification logic—phone, email, selfie, ID capture, orchestrated flows—without any pre-built UI. Each module exposes a manager with a subscribable state machine, so you can drive the flow from your own components, backend, or test harness.

- **[Dashboard Events](/sdk-reference/web-sdk-2-events/)**: A fire-and-forget event system for sending telemetry to the Incode dashboard. Built-in components track events automatically; headless integrations can call `addEvent()`, `moduleOpened()`, and related helpers directly.

- **[Web Components](/sdk-reference/web-sdk-2-web-components/)**: The pre-built UI ships as framework-agnostic custom elements (`<incode-flow>`, `<incode-id>`, `<incode-selfie>`, and more), usable from plain HTML, React, Vue, or Angular.

- **[WASM Configuration](/sdk-reference/web-sdk-2-wasm/)**: The selfie and ID capture modules run their ML pipelines—face detection, liveness, document quality checks—on WebAssembly. This page covers when WASM loads, how to preload it, and how to self-host the files.

- **[On-Device Face Capture](/sdk-reference/web-sdk-2-on-device-face-capture/)**: An opt-in mode that runs face analysis entirely in the browser, so the selfie image never leaves the device; only the analysis results are submitted. Requires End-to-End Encryption to be provisioned first.

- **[End-to-End Encryption](/sdk-reference/web-sdk-2-e2ee/)**: Adds a second layer of encryption on top of HTTPS so intermediaries can't read PII payloads in transit. Enabled with a single `setup()` flag, but requires provisioning through your Incode account team first.

## Where to Start

- If you're building a custom UI, start with **Headless Mode**.
 
- If you're deploying the pre-built UI outside a plain HTML page, start with **Web Components**. 

- If your flow includes selfie or ID capture, read **WASM Configuration** even if you don't customize anything else. 

- **On-Device Face Capture** and **End-to-End Encryption** are only relevant if you have a specific privacy, data-residency, or compliance requirement driving them.