See QWELP in action.

Imagine this page is the site you want to give remote support for.
All you need to connect is two pieces of information:

  1. The domain name: qwelp.dev
  2. The support code:

Open support.qwelp.dev on any other machine and enter both values. On desktop, you can also just open this link in a new window.

Connection status:

Waiting for support to connect!

So what am I looking at?

QWELP mirrors this browser's content (HTML, CSS, and images) live to the support agent's browser.
That lets support see exactly what the user sees, with no permission prompts and nothing to install.
Which brings us to QWELP's first core principle:

Simplicity

Follow the user

QWELP also mirrors the user's interactions.
Mouse position, clicks, and text selection are all streamed to the support staff in real time.
Window resizing and scrolling are mirrored too.
Give it a try below.

This block can be scrolled in both directions.
It will be synchronized to the support staff. Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7

Privacy by design

QWELP's unique architecture lets you redact privacy-relevant information before it ever reaches the support agent.
For example: This text will be redacted for the support staff.
Privacy is further reinforced by the security model behind QWELP.
The entire session is end-to-end encrypted, so not even the server operator can access or hijack it.

Interactive sites

JavaScript and CSS animations play out live for the support staff, exactly as they do for the user.
Every change to the page content is mirrored in real time.
Example: Like this typing animation!

Forms

Form input is followed in realtime, keystroke by keystroke.
Try it in this input field:

QWELP also highlights the currently focused element, and mirrors the state of a checkbox.

Images

QWELP also handles canvas elements and blob images correctly.
Here is a canvas example:

Compatibility

QWELP is currently in beta. Core co-browsing, input sync, and privacy redaction are stable and ready to try,
while broader browser and framework coverage is still actively being tested and expanded.

Test it on your site!

If your site runs in a secure context and doesn't set a Content Security Policy, just run this snippet in the dev console to give it a try:

const qwelpScript = document.createElement("script");
qwelpScript.type="module";
qwelpScript.textContent = "import {startQwelpSession} from 'https://js.qwelp.dev/current/index.js';  startQwelpSession(); ";
document.body.append(qwelpScript);