Error Monitoring for Beginners: Find Out About Bugs Before Your Users Tell You
Error monitoring tools catch crashes in your app — frontend and backend — and alert you with the stack trace and context. What error tracking is, how tools like Sentry work, what to set up first, source maps, privacy, and avoiding alert fatigue.
When your app breaks on your laptop, you see the error. When it breaks for a user at 2am, you see nothing — unless they bother to email you, and most people don't. They just leave. Error monitoring (or error tracking) fixes that: every crash in production is captured, grouped and reported to you with enough detail to fix it.
What an error monitoring tool does
You add a small SDK to your app. When an unhandled error happens — in the browser or on the server — it sends a report containing:
- the error message and stack trace (which line of code failed),
- context: the URL, browser and device, the user (if you choose to send it), the app version,
- breadcrumbs: the clicks, page views and requests that happened just before the crash.
The tool groups identical errors together, so 500 occurrences of one bug show up as one issue with a count — and it alerts you when something new appears or spikes.
Error monitoring vs logs vs uptime monitoring
They complement each other:
- Uptime monitoring tells you the whole site is down. (How to know when your app is down.)
- Logs record everything that happens, for searching later. (Structured logging.)
- Error monitoring tells you about specific crashes, with the details to fix them — even when the site is "up" but a button is broken for everyone on Safari.
The tools
Sentry is the best-known; it supports almost every language and framework and has a free tier for small projects. Alternatives include Rollbar, Bugsnag, Honeybadger, and error tracking built into broader observability platforms. Some open-source options can be self-hosted. For a small app, any of the major ones is fine — pick one with an SDK for your framework and a free tier that fits.
Setting it up
The details vary, but the shape is the same:
- Create a project in the tool and copy its DSN or key. (For most tools this is designed to be public in frontend code — it only allows sending errors.)
- Install the SDK for your framework. Many have a setup wizard; for Next.js, for example, Sentry's wizard configures both the browser and server sides.
- Initialise it as early as possible in your app, with your environment (
production,staging) and release version. - Trigger a test error to confirm reports arrive.
Source maps: readable stack traces
Production JavaScript is minified, so stack traces look like a.js:1:48213. Source maps let the tool translate that back to BookList.tsx:42. Most SDKs and build plugins can upload source maps during your build. Upload them to the monitoring tool — don't serve them publicly if you'd rather not expose your original source code.
What to set up first
- Backend errors. Unhandled exceptions in your API and background jobs. These are often the most serious — failed payments, failed signups.
- Frontend errors. JavaScript crashes that leave users with a blank page or a dead button.
- Alerts for new issues to your email or chat.
- Releases, so you can see which deploy introduced a bug.
Later, add performance monitoring if you need it — slow pages and slow database queries.
Privacy
Error reports can contain personal data: email addresses in URLs, form contents, user IDs. Before going live:
- turn on the tool's data scrubbing for passwords, tokens and card numbers,
- send a user ID rather than an email if an ID is enough,
- don't record session replays of sensitive screens,
- check where the tool stores data (some offer EU hosting) and mention it in your privacy policy. (GDPR basics for app builders.)
Avoiding alert fatigue
The fastest way to make error monitoring useless is to ignore it. Keep it signal, not noise:
- Filter junk: errors from browser extensions, bots, and ancient browsers.
- Resolve or ignore known issues deliberately, so new ones stand out.
- Alert on new issues and spikes, not every single event.
- Review weekly: the top five issues by number of affected users.
Using it with AI tools
An error report is a perfect bug report. Paste the stack trace, breadcrumbs and context into your AI coding tool:
This error happened 140 times for 60 users since yesterday's deploy: [stack trace]. Breadcrumbs show it happens after clicking "Save" on the settings page in Safari. Find the cause and fix it.
(How to write a good bug report.)
The summary
- Error monitoring captures production crashes with stack traces, context and breadcrumbs, and alerts you.
- It complements uptime monitoring and logs.
- Set up backend and frontend, upload source maps, and tag releases.
- Scrub personal data, and keep alerts meaningful.
EasySpawn gives Claude Code your real server to reproduce a reported error, read the actual logs and stack trace, and verify the fix before it ships. See how it works or join the waitlist.
Related: Debugging for Beginners · How to Read an Error Message · How to Launch Your First App · Analytics for Beginners
Keep reading
Why Does My App Work Locally but Not in Production?
The app runs perfectly on your machine and breaks the moment it's deployed. It's almost always one of about a dozen causes — missing environment variables, localhost URLs, a filesystem that doesn't persist. How to find which one, in the order most likely to be it.
What Is Vercel? What It Does, What It Costs You, and When to Use Something Else
Vercel is a hosting platform built around frontend frameworks, especially Next.js: push to GitHub and your site is live. What it actually does, what serverless functions mean for your app, where the limits are, and when a regular server is a better fit.