YBacked by Y CombinatorOpen source

Opslane finds the bugs, fixes them, and opens the PR.

Opslane records every session and captures every error, finds the bugs your users run into, and writes the fix. You review and merge.

Free to start. Your first PR shows up tomorrow.

Works with Next.js, Nuxt, React, Vue, and vanilla JavaScript

# opslane
Opslane AlertsAPP11:20 AM
Daily digest · Acme Invoicing
Aug 24 · 5 issues that matter · 2 need a decision · 3 fixes ready to merge
⚠️ Needs a decision
Send invoice does nothing
18 people tried to send an invoice to bill a customer, and couldn't. They clicked Send 34 times and nothing happened, so the invoice never went out.
Needs you: watch the replay, then make Send explain why it's blocked when the tax ID is missing, or let it through. Open the fix and link it.
👥 18 users · Northwind Traders, Globex, Initech
▶ Watch replayView issue
✅ Fixes ready to merge · Opslane only opens a PR it can verify
Invoice total crashed on a null amount
342 people opened a draft invoice and got a blank screen instead of the totals, so they couldn't read or finish the invoice.
Ready: Opslane opened a verified fix. Review and merge PR #6, reproduced red to green, CI green.
👥 342 users · Northwind Traders, Globex, Initech, Umbrella
Review PR #6View issue
claude
❯ lets work on the opslane digest for today opslane - opslane_digest (MCP)5 issues that matter, 2 need a decision, 3 fixes ready to merge opslane - opslane_issue (MCP)"Send invoice does nothing" · 18 users, no error thrownroot cause: sendInvoice returns { sent: false } when there is no tax ID This is a product call. How should Send behave with no tax ID?❯ block and explain why it can't sendlet it send without a tax IDcollect the tax ID earlier in the flowyou chose: block and explain Update(src/lib/send.ts)block and explain: Send is disabled with an inline reason Bash(npx vitest run)Test Files 3 passed · Tests 12 passed opslane - opslane_link_pr (MCP)Linked github.com/acme/invoicing/pull/14 · resolves on merge Done. PR #14 is open and linked. Send now explains why it is blocked instead of failing silently.
The problem

The bugs that slip through

Two reasons the bugs that matter never get fixed.

Thousands of errors, no priorities

An error tracker shows you thousands of errors. You have to figure out which ones your users actually care about. Opslane finds the ones that matter.

The bugs your tracker never sees

A lot of bugs never show up in an error tracker. They don't crash anything. They just make people give up and leave. Opslane catches those too.

How it works

From a bug to a pull request

You install the SDK. Opslane captures your errors and records every session. When Opslane finds a bug, it reproduces it, writes a fix, and opens the PR once the fix works. Every issue comes with a full report.

FAQ

Frequently asked questions

Will Opslane merge anything on its own?

Never. Opslane opens a pull request on its own branch and stops there. You review and merge, same as any teammate's code.

How do you know a bug is worth flagging?

Opslane only flags a bug when it's clear real customers are affected. It looks at how many people ran into it and where in your app it happened.

What does it support today?

Browser JavaScript today: Next.js, Nuxt, React, Vue, and vanilla. Repositories are on GitHub. It's early, and the focus right now is reliability and accuracy.

Is my session data safe?

Inputs are masked by default, and recordings are scrubbed of sensitive data before you or the agent can read them. Default retention is 30 days.

Can I self-host?

Yes. Opslane is open source and runs from a single Docker Compose file, with minimal dependencies (Postgres and Minio). Setup lives in the GitHub repo.

Get started

Your first PR shows up tomorrow.