NEWOpenLook 2.4 — Performance insights, web vitals overlays & rage-click detection read the changelog →
OPEN SOURCE · MIT LICENSED · SELF-HOSTABLE

See exactly what
your users saw.

OpenLook replays every session with pixel-perfect fidelity — clicks, scrolls, console errors and network calls included. Debug UX issues in minutes, not days.

Start free — 5k sessions/mo Read the docs
$ npx @openlook/init ⧉
app.openlook.dev/replay/9f3a… — acme-store.com · Safari · 12:04
EventsConsoleNetwork
0:04↖pageview — /products
0:09◉click — "Add to cart" .btn-primary
0:11⇄POST /api/cart — 201 · 84ms
0:14⚡rage click ×6 — .coupon-input
0:17✕TypeError: e.discount is undefined
0:19⇄GET /api/coupon — 500 · 1.2s
0:23◉click — "Contact support"
0:24↖pageview — /help
0:17 / 0:46
14.2kGitHub stars
2.1Bevents / month
3,400+engineering teams
MITcore license
The platform

Your frontend's black box,
finally decoded.

Every session tells a story. OpenLook records it, indexes it, and hands you the playback — with the devtools attached.

Pixel-perfect replay

DOM-snapshot based replay captures every hover, scroll and input — not a video, the real thing. Inspect any moment frame by frame.

Devtools attached

Console logs, network waterfalls and stack traces sync to the timeline. See the error exactly when the user hit it.

Frustration signals

Rage clicks, dead clicks and u-turns are detected automatically. Find the moments that cost you conversions.

Performance insights

Web vitals per session — LCP, INP, CLS — correlated with what was actually on screen at the time.

Privacy by default

Input masking, element-level ignore rules and on-device sanitization. PII never leaves the browser unless you say so.

Self-host anything

One Docker compose gets you the full stack. Your data stays in your VPC — nothing phones home, ever.

Two minutes in

Drop in the snippet. Watch the truth.

<!-- before </head> on every page --> <script> window.openlook=window.openlook||function(){(openlook.q=openlook.q||[]).push(arguments)}; openlook('init', 'ol_pk_9f3a1c', { maskAllInputs: true }); </script> <script async src="https://cdn.openlook.dev/v2/openlook.js"></script>
import { OpenLook } from '@openlook/react'; export default function App() { return ( <OpenLook projectKey="ol_pk_9f3a1c" maskAllInputs> <YourApp /> </OpenLook> ); }
// app/layout.tsx import { OpenLookScript } from '@openlook/nextjs'; export default function RootLayout({ children }) { return <html><body> <OpenLookScript projectKey="ol_pk_9f3a1c" /> {children} </body></html>; }
import { createApp } from 'vue'; import { openlookPlugin } from '@openlook/vue'; createApp(App) .use(openlookPlugin, { projectKey: 'ol_pk_9f3a1c', maskAllInputs: true, }) .mount('#app');
Workflow

From bug report to root cause in three steps.

01 / CAPTURE

Record every session

The 11KB tracker buffers DOM mutations, input events and console output — under 0.4% CPU, no visible overhead.

02 / SEARCH

Query by anything

Filter sessions by error.type, page path, country, frustration score, or a user ID your support team hands you.

03 / REPLAY

Watch it happen

Scrub to the exact second. The console, network and state diffs are already lined up on the timeline.

Privacy

Your users' data.
Your infrastructure.

Session data is the most sensitive telemetry you collect. OpenLook was built so it never has to leave your perimeter.

  • Self-hosted option — full stack in a single docker-compose, data never leaves your VPC
  • Field-level masking — inputs masked in the browser, before anything is transmitted
  • GDPR & CCPA ready — DSR endpoints, retention policies and EU region pinning
  • SOC 2 Type II — audited annually, report available under NDA
data_residencyeu | us | self
input_maskingenabled
pii_sanitizationon-device
retentionconfigurable
dsr_endpoint/v1/privacy
telemetry_homenone
sso / scimenterprise
Pricing

Open core. Generous free tier.
No surprises.

Community

$0 forever
Self-hosted, MIT licensed
  • Unlimited sessions
  • Replay + devtools + events
  • Up to 3 projects
  • Community support
  • Your infra, your rules
Deploy now
MOST POPULAR

Cloud

$0–49 /mo
Managed, scales with you
  • 5,000 sessions/mo free
  • Then usage-based pricing
  • Unlimited projects & seats
  • 90-day retention
  • EU or US region
  • Email support
Start free

Enterprise

Custom
For regulated & at-scale teams
  • SSO / SAML / SCIM
  • Unlimited retention
  • Dedicated region or BYOC
  • 99.9% uptime SLA
  • Audit logs & custom DPA
  • Dedicated CSM
Talk to us
Loved by builders

Teams ship fixes, not guesses.

"We closed a three-week checkout bug in one afternoon. The replay showed the exact race condition — the console tab had the failed request right there on the timeline."

MK
Marta KowalskaStaff Frontend Eng, fintech

"Self-hosted in our VPC in under an hour. Our security team actually smiled — first time a vendor tool passed review without a single follow-up."

DR
Daniel ReyesPlatform Lead, healthtech

"Rage-click detection alone paid for itself. We found a dead 'Apply' button that was silently eating 4% of trial signups."

AS
Aiko SatoGrowth PM, SaaS

Stop guessing.
Start watching.

Free for 5,000 sessions a month. No credit card, no sales call required.

Create free workspace Self-host instead