// Blog

Catch what your users hit.

Guides on error tracking, user feedback, and shipping software you can trust — from the team building Catch.

User feedback··7 min read

Why users don't report bugs — and how to change that

Most users never report bugs — they retry, work around it, or quietly leave. Why reporting fails, and how one-gesture in-app feedback changes it.

Error tracking·

Error tracking for AI-generated code and vibe apps

Shipped an app from Cursor, Lovable, or Bolt? One script tag captures production errors — stack trace, browser, frequency — ready to paste into your agent.

8 min read

Comparisons·

Lightweight Sentry alternatives for small teams in 2026

Six lighter Sentry alternatives compared honestly — GlitchTip, Honeybadger, Rollbar, TrackJS, Insight Hub, Catch — and when Sentry is still the right call.

11 min read

User feedback·

html2canvas alternative: getDisplayMedia screenshots

Looking for an html2canvas alternative? getDisplayMedia captures real pixels instead of a DOM repaint — fidelity, permissions, mobile, and when to use each.

9 min read

Error tracking·

Next.js onRequestError: track every server error

Export onRequestError from instrumentation.ts to capture every uncaught Next.js server error — components, actions, route handlers — in one function.

9 min read

User feedback·

Shake-to-report feedback for iOS: full Swift tutorial + SDK

Build shake-to-report for iOS in Swift: detect the shake with motionEnded, screenshot with UIGraphicsImageRenderer, annotate with PencilKit — or use one SDK.

9 min read

Error tracking·

Fix 'Failed to fetch dynamically imported module' in Vite

This Vite error means an open tab requested a lazy chunk your deploy deleted. Fix it with a vite:preloadError reload handler, router fixes, and cache headers.

7 min read

Error tracking·

React error boundary not catching async errors? Here's why

Error boundaries only catch render errors. Three fixes for async and event-handler errors: showBoundary, React 19's onUncaughtError, and global window handlers.

8 min read

Error tracking·

JavaScript source maps: unminify production stack traces

Map app.js:1:45 back to a real file, line, and function. How to generate source maps in Vite, webpack, and esbuild — and unminify stack traces safely.

9 min read

Error tracking·

window.onerror vs addEventListener: the complete guide

window.onerror misses resource failures and promise rejections. What addEventListener('error') and unhandledrejection catch, with one complete runnable handler.

10 min read