A customer hits a bug in your checkout, shrugs, and leaves. They never email you. They never open a support ticket. Your team learns about it a week later, if at all. This quiet loss is the main reason startups need error monitoring: most users do not report problems, they simply disappear.
This guide explains how to set up practical error monitoring for a web app, from choosing tools to writing alert rules and running a weekly triage. It suits founders, product managers and developers at startups and SMEs who want fewer production surprises without building a full operations team.
Good monitoring answers four questions quickly. What broke? Who was affected? When did it start? What changed? Modern tools capture the stack trace, the browser or device, the user's recent actions (often called breadcrumbs), the release version and the request that failed. They also group thousands of identical errors into one issue so your team sees a short, prioritised list instead of a flood.
It is worth separating three layers. Error tracking catches exceptions. Performance monitoring shows slow pages and slow API calls. Uptime checks confirm the site is reachable. A small team can begin with error tracking and add the other two over time. If page speed is a concern, our article on performance budgets for web apps in CI pairs well with this one.
Here is an illustrative scenario. A small SaaS team ships a new billing page on a Friday. For example, a date formatting issue might throw an error for users with a particular browser language setting. Without monitoring, the team would hear nothing until Monday, if a user bothers to write. With monitoring, an alert for a new issue arrives within minutes, showing the affected release, the browser, the page and the line of code. A developer could roll back or patch the same evening, and support could reach out to the few affected customers. The cost of the bug drops from "days of silent revenue loss" to "an hour of focused work".
You do not need perfect software. You need to find out first, before your customers do.
The fastest way to kill a monitoring programme is to flood the team with notifications. Once people mute the channel, real incidents are missed. Keep alerts few and meaningful. A good rule of thumb is that every alert should have a clear owner and a clear next action. If nobody would do anything when it fires, change it into a digest or remove it.
Useful alert patterns for small teams include:
For failures in scheduled and queued work, apply the same discipline. Our guides on background jobs and queues for web apps and on automation error handling explain how to make those failures visible instead of silent.
An error that fires ten thousand times for one confused bot is less important than one that blocks twenty paying customers at checkout. Rank issues by users affected, business value of the flow and whether a workaround exists. Tag issues in critical journeys such as sign-up, payment and data export so they stand out. This keeps your effort pointed at revenue and trust rather than at the noisiest stack trace.
Monitoring is most powerful when linked to deployment. Tie each release to a short watch period where the team looks at new errors. Combine it with feature flags and progressive rollouts so you can expose a change to a small group first and switch it off instantly if errors rise. Add automated tests for each bug you fix, so the same failure does not return. If you want our help setting up this kind of delivery pipeline, see our web development services.
Error tools can accidentally collect personal data in URLs, form values and request bodies. Decide what you allow, scrub the rest, and set sensible retention periods. Check where your vendor stores data and whether that matches your customer contracts. If you serve regulated customers, include your error tracker in your list of sub-processors.
Browser errors have quirks that backend errors do not. Users run many browsers, extensions and network conditions, so frontend noise is common. Capture unhandled promise rejections as well as normal exceptions, and wrap your framework's top-level error boundary so a crash in one component shows a friendly fallback and reports the error instead of leaving a blank screen. Track failed network calls with the URL path (without sensitive query strings), status code and duration, since a surge of failed requests often points to a backend or CDN problem before any exception appears.
Consider recording a small amount of session context around errors. Breadcrumbs showing the last clicks and route changes are usually enough to reproduce a bug without full video replay, which carries more privacy risk. If you do use session replay, mask all input fields by default and only unmask what you have explicitly reviewed.
On the server, attach a request ID to every incoming request, log it, and return it in error responses so support can ask customers for a code that leads straight to the trace. Group errors by meaningful fingerprints so that one underlying cause does not produce hundreds of separate issues. Pay special attention to third-party calls such as payment gateways, email providers and maps, and wrap them with timeouts and clear error types. When an external service is down, you want an alert that says so plainly, not a vague wave of unrelated exceptions. Finally, remember to monitor deploy health: a quick check of error rate before and after each release is one of the cheapest safety nets a team can add.
Finally, write a short incident note whenever a serious error reaches customers. Record what broke, how it was found, how long it took to fix and what will prevent a repeat. These notes need not be formal. Over a few months they reveal patterns, such as weak spots in a particular integration or gaps in testing, and they give you a clear, honest basis for deciding where to invest engineering time next.
You do not need a large operations team to run production responsibly. Install error tracking across your stack, tag releases, scrub sensitive data, write a small number of meaningful alerts and review the top issues every week. Within a month you will know your product's real failure modes, and your customers will notice that things simply break less. Start with your sign-up and payment flows today, then widen coverage as your confidence grows.