Our story · est. 2024

We made error tracking small enough to forget.

Catch is the tiny, fast, unobtrusive SDK for in-app feedback, surveys, and crash reports. We started with one stubborn question — why does catching errors need heavyweight tooling that slows the very app it's meant to protect? So we built the opposite: @catch.dev, 4kb gzipped, with zero runtime deps. Boring on purpose. Battle-tested by default.

4kb gzipped Zero runtime deps Self-host ready
beliefs.ts
1// what we optimize for
2export const beliefs = [
3  'simplicity',
4  'speed',
5  'reliability',
6]
7 
8// everything else is negotiable
three beliefs · one SDKshipping
// What we believe

Simple. Fast. Reliable enough to forget.

The three things we refuse to trade away — restated as constraints we hold on every layer.

01 · Simplicity

One line in. Three jobs done.

Drop in @catch.dev once and get in-app feedback, surveys, and crash reports — wired together by default, separable when you need them. No five-vendor stitch-up.

// zero runtime deps
02 · Speed

Featherlight by design.

The feedback reporter renders inside a Shadow DOM, so it never touches your styles, and nothing heavy is forced into your bundle. The tool that protects your app shouldn't be the thing that slows it.

// 4kb gzipped
03 · Reliability

Boring on purpose.

We pick mature, proven technology over the new and shiny on every layer, so the code you ship on top of us just keeps working. Self-host ready when you want full control.

// self-host ready
// Why we exist

Most tools watching your app are heavier than your app.

We started Catch in 2024 with one annoyed question: why does catching errors cost you a megabyte, a config file, and a week?

Error and feedback tooling had drifted. The libraries meant to make your app more reliable were slowing it down, bloating the bundle, and burying real signal under dashboards nobody opened. So we set a hard constraint and refused to break it — stay small, stay quiet, stay out of the way.

Catch is the result. @catch.dev drops in once and does three jobs well — collect in-app feedback, run surveys, and report crashes — at 4kb gzipped, with zero runtime dependencies. The reporter renders inside a Shadow DOM, so it never touches your styles, and you can point it at your own deployment.

We exist to help developers build better software, faster — by being the dependable, boring layer you forget is even there, until the moment you need it.

// How we build

Simple, boring, battle-tested.

A deliberate, load-bearing preference: the simplest thing that works, built on mature, proven technology over the new and shiny — and we call out the trade-off when we deviate.

01

Minimize dependencies

We reach for the platform and standard library before a third party. Networking is the platform's own fetch / URLSession / HttpURLConnection; the web SDK ships zero runtime deps. Every dependency we skip is a version conflict and a supply-chain liability we never force on you.

02

Boring, proven tech

We pin to stable, widely-used, current-but-not-bleeding-edge releases and skip the brand-new major the week it ships. Predictable beats exciting when your error tracker is the thing that has to stay up.

03

Self-contained, low coupling

Our SDKs make zero assumptions about your app — its router, its styles, its build. The web reporter renders inside a Shadow DOM so it never collides with your CSS. It embeds anywhere and asks for nothing.

04

Small, readable code

We favor a hundred lines you can read over a framework you can't. Obvious names, clear control flow, optimized for the next person to open the file — usually future us, at 2am, during an incident.

// By the numbers

A few true things about Catch.

2024
// Founded
12+
// Countries reached
99.99%
// Uptime
4kb
// Gzipped SDK
0
// Runtime deps

Live status at status.catch.dev.

// Works everywhere your code runs

One contract. Every platform you ship on.

The same tiny wire contract serves every platform — so a new SDK needs no backend changes at all.

// In your words, soon

Your story goes here.

We're early, and we'd rather leave this blank than fake it. These slots are reserved for real teams shipping on Catch.

placeholder
[ A sentence about how Catch dropped into your stack in minutes and what it caught first. ]
[ Your name ][ Role, Company ]
placeholder
[ The thing your old, heavier tool made painful — and how boring-and-tiny changed that. ]
[ Your name ][ Engineer, Company ]
placeholder
[ Why your team trusts a 4kb SDK with production. ]
[ Your name ][ Founder, Company ]

Shipping on Catch? Tell us your story →

Boring is a feature.
Drop it in.

One tiny SDK for feedback, surveys, and crashes — wired up in under ten minutes, on every platform you ship to. Or come help us keep it that small.

no credit card · free for hobby apps · self-host ready