Private betaWe're letting in new teams every week.

Catch every error.
Ship every fix.

Squasher gives product teams one place for errors, logs, traces, replay, uptime, and AI triage so they can ship fixes faster with fewer tools.

Squasher is currently waitlist-only. Leave your work email and we'll follow up as we open new cohorts. Existing users can still sign in.

squasher · checkout service
errorTypeError: Cannot read properties of null
at processCheckout (src/checkout/process.ts:142)
at handleSubmit (src/checkout/summary.ts:41)
at async POST (app/api/checkout/route.ts:22)
AI triage · 98% confidence

Regression introduced by release web@2201. Missing null guard after session expiry in checkout summary. Backend pool saturation warnings match the same window.

release linkedowner: checkoutfix suggested

Trusted by teams building on modern infrastructure

Vercel
Cloudflare
Railway
Render
Supabase
PlanetScale
Fly.io
Modal
AWS

Ship Squasher in 30 seconds.
Truly.

$ npm install @squasher-ai/node
import Squasher from "@squasher-ai/node";

Squasher.init({
  dsn: process.env.SQUASHER_DSN,
  environment: process.env.NODE_ENV,
});
Read the install guide
The whole incident

See the whole story of every production error.

Stop bouncing between Sentry, your logs vendor, the deploy dashboard, and Slack. Squasher assembles the full timeline of what happened around every incident.

Incident timeline4 minute window
15:39deployweb@2201.04
15:40logpool saturation warning
15:41tracecheckout.process 142ms p99
15:42replayrage click on submit
15:42errorTypeError at summary.ts:42
15:43airegression detected · 97%
Timeline

Errors, logs, traces, and deploys in order

When an incident fires, Squasher walks you through exactly what happened. Deploy marker, error spike, backend warnings, and frustrated session replays — all on the same clock.

Learn more
AI incident summary97% confidence

A regression introduced by release web@2201.04 removed a null guard after session expiry in checkout/summary.ts:42. The error rate spiked 32× immediately after deploy. Backend pool saturation warnings in the same window point to the same code path.

Owner
checkout-team
Users
126 affected
First seen
2m ago
Suggested fix
PR #1874 ready
AI summary

Stop reading stack traces by hand

Every incident opens with an AI summary that points at the likely root cause, the linked release, and the owner who should take the first look. With confidence scores, not hand-waving.

Learn more
PR #1874 · checkout-webready to merge
src/checkout/summary.ts
41 if (!session) return fallbackSummary;
42 - return session.cart.total;
42 + if (!session.cart) return 0;
43 + return session.cart.total;
tests generatedincident linkedowner notified
Fix path

From incident to merged PR in one click

Auto-fix suggests the smallest safe diff to resolve the issue and opens a PR tagged with the incident, the affected users, and the release marker that introduced it.

Learn more
How it works

Ingest, correlate, triage, and fix.

Squasher runs the whole error lifecycle. Your team stops stitching vendors together and starts shipping fixes.

Capture from anywhere

SDKs, log drains, and OTLP all land in one timeline.

// 1. Send events from your SDK
Squasher.captureException(err, {
user: { id: "u_123" },
tags: { area: "checkout" },
});
 
// 2. Or drain logs from Vercel, Railway, Render
squasher drains add --source vercel
 
// 3. Or ship OTLP traces from anything
OTEL_EXPORTER_OTLP_ENDPOINT="https://otlp.squasher.ai"

Stop cobbling your monitoring stack together.

Squasher is opinionated about what matters: one place for the whole incident, AI on new issues, and packaging that fits how product teams actually buy software.

Built for engineers

Developer experience matters.

Terminal-first

A CLI you'll actually keep in your shell

Tail live errors, search across projects, and run a triage on any incident — without leaving your editor.

~/checkout-web
$ squasher tail --project checkout
↳ streaming live events…
● TypeError at summary.ts:42 (×12)
● pool saturation warning (×3)
$ squasher triage incs_4f
✓ root cause attached in 2.1s
Open SDKs

MIT-licensed clients for every runtime

Patch them, fork them, audit them. Our SDKs are open source and OpenTelemetry-compatible.

@squasher-ai/node
import Squasher from "@squasher-ai/node";
 
Squasher.init({
dsn: process.env.SQUASHER_DSN,
})
Bring your own

Plays nicely with what you already have

Use the drains your team already has, then point everything else at OTLP. Squasher fits into the stack you already run.

Sources
Vercel
Railway
Render
Fly.io
OpenTelemetry
Integrated

Lives in the tools your team already opens

GitHub, Linear, PagerDuty, Slack, and Discord stay in the loop so incidents, owners, and fixes show up where your team already works.

GitHub
Linear
PagerDuty
Slack
Discord

You read the whole page. Want in?

Squasher is currently waitlist-only. Drop your email and we'll let you in as we open new cohorts.

Squasher is currently waitlist-only. Leave your work email and we'll follow up as we open new cohorts. Existing users can still sign in.