BugsRadar

Node.js error monitoring: alerts in Telegram, Discord and Pushover

One npm package for servers, workers and command-line tools on Node.js 18 and later: uncaught errors, Express, winston and pino, with TypeScript types. Every new error lands in the chat you already read: the first occurrence at once, with its stack, and repeats as a live count in that same message.

Free plan · no event quotas · your events are never stored

Add it in a few minutes

Install bugsradar from npm and create the client once with the key from an environment variable. It reports uncaught exceptions and unhandled rejections by itself; add the Express error handler after your routes, or a transport to winston or pino, and report anything you catch yourself with one call.

Terminal
npm install bugsradar
bugsradar.js
import { BugsRadar } from 'bugsradar';
import { expressErrorHandler } from 'bugsradar/express';

export const bugsRadar = new BugsRadar({
  apiKey: process.env.BUGSRADAR_KEY,
  environment: process.env.NODE_ENV,
});
// Uncaught exceptions and unhandled rejections are reported by the client itself

app.use(expressErrorHandler(bugsRadar)); // after your routes

// Anything you catch yourself
bugsRadar.sendException(error, { module: 'Orders' });

Integration docs →

Your framework, your logger

Each integration has its own page in the docs.

Uncaught errors

Uncaught exceptions and unhandled rejections are reported by the client itself; the process then exits with code 1, as it would without BugsRadar. Uncaught errors →

Express

An error handler that reports every unhandled error of a request with its method and path, then passes it on to your own handler. Express docs →

winston

A transport next to the ones you already have: entries at error and above, with the Error object as the exception. winston docs →

pino

A transport that runs in pino's worker thread: error and fatal entries, with the error in err as the exception. pino docs →

Direct calls

sendException for anything you catch yourself, or the full event with a message template and properties. Direct calls →

Jobs and command-line tools

flush() waits for the queued reports before a short-lived process exits. Before the process exits →

Where the alerts go

Alerts go through your own Telegram bot, Discord webhook or Pushover application: you decide who reads the chat.

Coming with Business: Slack, Microsoft Teams, Google Chat and PagerDuty.

An alert, not an archive

BugsRadar does one thing: it brings every new error to your chat. It is honest about what it leaves to other tools.

Questions developers ask

Which Node.js versions are supported?

Node.js 18 and later, ESM and CommonJS, with TypeScript types in the package.

Does it slow down my requests?

No. send and sendException queue the event and return at once; reports leave through a background queue in your process. Only flush() waits, for a process that is about to exit.

Does it catch unhandled promise rejections?

Yes. In Node.js 15 and later an unhandled rejection becomes an uncaught exception, so it is reported the same way. BugsRadar waits up to shutdownTimeout for the report to leave, then the process exits with code 1, as it would without BugsRadar.

What happens when my app throws thousands of errors a minute?

The package folds repeats into one request with a count, and BugsRadar groups them on its side: you get the first occurrence at once, and that message keeps the count of the repeats. If errors come faster than your channel accepts, they are bundled into one message with a line per error.

Does BugsRadar store my errors?

No. An event stays in memory only until it is delivered to your channels; nothing is written to a database. BugsRadar keeps only what it needs to run: your email, your projects and the encrypted settings of your channels.

Pricing

Plans differ by features, not by volume: no event quotas and no per-seat fees on any plan. Free is 2 projects and 3 channels, Telegram, Discord and Pushover, every package and the HTTP endpoint, duplicate filtering and a live count of repeats. Pro, $5 per month or $50 per year, adds unlimited projects and channels and rules that route errors by level, module and environment. Compare the plans →

Your first Node.js alert in a few minutes

Sign in with your email, create a project, add the package.

Next: BugsRadar for Python →