What is Lay

Lay is an in-app feedback widget that lets your users point at what's broken instead of trying to describe it. Comments anchor to the exact DOM element — not a chat transcript, not an email, not a screenshot with a red circle.

Core concept

Every comment in Lay is attached to a specific element on the page. When someone clicks a button, a card, or a heading to leave feedback, the SDK records two things: a CSS selector for fast exact matching, and an element fingerprint (a hash of the tag, text, attributes, and position) as a fallback. If the selector breaks after a deploy, the fingerprint scorer finds the closest match and reattaches the comment automatically.

How it works

1

Install the SDK

Add @uselay/sdk to your project via npm, yarn, or pnpm.

2

Wrap your app with LayProvider

Pass your projectId and choose a mode (review or support). The provider initializes the widget and connects to the Lay backend.

3

Press C to enter comment mode

The cursor changes to a crosshair. Elements highlight as you hover, showing you exactly what you can comment on.

4

Click an element to anchor a comment

The SDK generates a CSS selector and a fingerprint hash for the element. Your comment is pinned to that specific element — not a screenshot coordinate.

5

AI enrichment adds context

Element metadata (tag, text, styles, position) is sent for AI enrichment. The AI adds a context card describing what the element is, what might be wrong, and what action to take.

6

View and manage in the dashboard

Comments appear in your Lay dashboard grouped by page and element. From there, sync to Linear, resolve threads, and track patterns across your product.

Two modes

Lay operates in one of two modes, each designed for a different job:

Review

For your team on staging. Threaded comments, AI fix suggestions, identified team members. Best for design reviews, QA passes, and sprint feedback.

Support

For your users in production. Standalone comments, AI intent detection, anonymous or identified users. Best for bug reports, user research, and beta programs.

i
Read the full comparison in Modes.

Architecture

Lay has three layers:

  1. SDKA React component library (@uselay/sdk) that embeds the widget in your app. Handles comment mode, element anchoring, AI enrichment, and screenshot capture.
  2. DashboardA web app at uselay.com/dashboard where your team views, filters, and manages all feedback across projects and pages.
  3. IntegrationsBidirectional connections to tools your team already uses. Linear integration creates issues automatically and syncs status changes via webhooks.

Key features

  • Element-anchored comments — pinned to DOM elements, not screenshot coordinates
  • CSS selector + fingerprint matching — comments survive deploys and DOM changes
  • AI context cards — automatic element description, issue detection, and fix suggestions
  • Two modes — Review (team/staging) and Support (end-user/production)
  • Annotated viewport screenshots — captured at comment time for visual context
  • Linear integration — bidirectional sync, auto-create issues, status updates via webhooks
  • Keyboard shortcut (C) — instant comment mode, no mouse required
  • Dashboard — filter by page, manage threads, view AI insights, track resolution

Who it's for

Lay replaces chat widgets and support emails with feedback pinned to the element itself. Your users show you the problem instead of describing it.

  • SaaS teams replacing Intercom and chat widgets with element-anchored feedback
  • Support teams that want bug reports attached to the UI, not typed into a chat box
  • Founders gathering beta feedback without building a custom feedback system
  • Product teams running design reviews and QA passes on staging