Simple, declarative RUM and E2E tests for web apps

mitchm1 pts0 comments

Faultsense. Catch the bugs that don't throw.

Catch the bugs<br>that don't throw.<br>Add assertions to your HTML. Real user sessions validate them in production, so you see which feature broke, for which users, on which release.

&ldquo;Are we sure checkout isn't broken?&rdquo;<br>You don't actually know.

Error tracking is quiet. RUM looks normal. The funnel dipped but won't say why. So you click through on desktop, then on mobile, then ask the user for a screen recording. Faultsense answers from the assertions you wrote, validated in real user sessions, per release, per cohort. Not a chart you have to read. A structured fact: assertion, release, cohort, pass/fail.<br>Written like a test. Reported like a production signal. Per release, per cohort.

Instrument in the HTML you already ship<br>Test-shaped on the way in. Observability on the way out. Per release, per cohort.

Your HTML What your agent gets

fs-assert="checkout/submit-order"<br>fs-trigger="click"<br>fs-assert-added-success=".order-confirmation"<br>fs-assert-added-failure=".error-message[text-matches=try again]"><br>Place Order

"assertion": "checkout/submit-order",<br>"status": "degraded",<br>"release": "6.0.0",<br>"pass_rate": 0.88,<br>"previous_pass_rate": 0.99,<br>"failures": {<br>"total": 312,<br>"breakdown": {<br>"safari_ios": { "rate": 0.105, "count": 287 },<br>"chrome_desktop": { "rate": 0.98, "count": 12 },<br>"firefox": { "rate": 0.97, "count": 13 }

Works with any web framework that renders HTML

Thousands of sessions

checkout/submit-order<br>degraded

One fact

Demo<br>Assert what should happen. Get structured insights when it doesn't.

Tasks v6.0.0<br>Add

Review pull request #847 Edit Delete<br>✓ Deploy v6.0.0 to staging Edit Delete<br>Update API documentation Edit Delete

Interact with the list. Watch the dev tools panel capture each assertion live.<br>(In production, assertions stream to your agent. The panel is just for local debugging.)

Install<br>8.5kb gzipped. Script tag or npm. One-line init.

Script tag npm

id="fs-agent"<br>src="https://cdn.faultsense.com/v0.5.5/faultsense-agent.min.js"<br>data-release-label="YOUR_RELEASE_ID"<br>data-api-key="fs_secret_..."<br>defer><br>$ npm install @faultsense/agent

import { init } from '@faultsense/agent'

init({<br>releaseLabel: 'YOUR_RELEASE_ID',<br>apiKey: 'fs_secret_...',<br>})

The JS library is source-available: github.com/Faultsense/faultsense-agent<br>0ms INP impact · 1.7KB idle heap · Zero long tasks · Full benchmarks →

Your agent writes the attributes.<br>Install the skill. It picks the right trigger, the right assertion type, the right modifiers.

Claude Code<br># In Claude Code:<br>/plugin marketplace add Faultsense/faultsense-ai<br>/plugin install faultsense-instrumentation@faultsense-ai<br>View on GitHub · Marketplace

From failure to shipped fix.<br>Here's what one incident looks like end to end.

01<br>Deploy<br>Agent deploys v6.0.0 → Real users interact → Events flow to Faultsense

02<br>Detect<br>Faultsense detects regression → checkout/submit-order degraded on release 6.0.0

03<br>Diagnose<br>Agent calls diagnose_assertion("checkout/submit-order"). One tool call:<br>Pass rate<br>99% → 88%

Assertion<br>added-success expected on .order-confirmation

Blast radius<br>Safari/iOS 10.5%

04<br>Fix<br>The agent opens a draft PR. Your reviewer ships. Faultsense sees the assertion pass again.

this worked in our lab.<br>this worked for Sarah on her iPhone 12 with an ad blocker on a 3G connection.

Partners, not users (yet).<br>We're not taking signups. We're taking design partners. About a dozen teams shipping real traffic, ready to battle-test Faultsense in production. Founder-led instrumentation, direct Slack access, and the paid backend is free while you do.<br>Tell me:<br>what you're shipping<br>what broke last week<br>what agent tools your team uses (bonus: Claude Code, Open Code, Cursor or Codex)<br>Email Mitch →I read every one. Expect a reply within 48 hours, usually same day.

faultsense agent release order checkout assertion

Related Articles