LightyErrors

Error tracking that fits on one small server.

LightyErrors is a lightweight, self-hosted alternative to Sentry: a familiar client, readable stack traces and one e-mail when something new breaks. Deploy it to Caprover in minutes.

5,000 events a month free. No credit card.

5,000events a month on the free plan
1process to run: API, app and workers
100log lines and your own context with every error
1 e-mailper new error, never for repeats

Everything you open Sentry for. Nothing you have to babysit.

Stack traces you can read

Frames are parsed, your own code is highlighted and library frames fold away. Errors are grouped by where they happen, not by line numbers that change with every deploy.

One e-mail per new error

The first time an error appears, your team gets one e-mail. When it happens again, LightyErrors counts it and keeps quiet.

Lightweight by design

One Node process, Postgres for the queue, CouchDB for the data. No Kafka, no ClickHouse, no twelve containers to babysit.

Self-hosted, so the data stays yours

Stack traces contain user data and secrets. Keep them on your own server, behind your own login.

Context and logs with every error

Attach your own fields to every event or to one error, like Sentry's extra, and get the app's last log lines with it. You see what the error was about and what led up to it.

Nothing lost, nothing counted twice

Every step is retried and idempotent. If your mail service or database blinks, events and alerts wait and go out once it is back.

If you know Sentry, you already know the client.

init, captureException, flush. Events are batched and sent in the background, retried when the network fails, and flushed before your process exits. Uncaught errors are reported automatically, with your extra context and the recent console lines.

  • No dependencies, uses fetch
  • Works with Node 18+ and in the browser
  • Same event is never counted twice, even after retries
// npm i lighty-errors-client
import { Lighty } from 'lighty-errors-client';

Lighty.init({
  dsn: 'https://3f9a…@errors.example.com/shop',
  environment: 'production',
  extra: { service: 'shop-api' },
});

try {
  checkout(cart);
} catch (err) {
  Lighty.captureException(err, { extra: { cartId: cart.id } });
}

await Lighty.flush(2000);

Plugs into what you already run.

Caprover

The repository ships a Dockerfile and a captain-definition. Add Postgres and CouchDB as one-click apps, set a few variables, run npm run deploy.

SMTP

Send alerts through any mail server or provider: host, port, TLS and login. Mailpit catches everything while you develop.

HTTP mail API

Already have a mail service? Point the server's configuration at it: LightyErrors posts { to, subject, body } as JSON, one request per recipient, and retries when it is down.

Simple pricing with very high limits.

Start free with 5,000 events a month. Need more? Pro gives you 100,000 events for $10 a month.

Free

$0 forever

5,000 events / month

  • Unlimited projects
  • E-mail alerts on new issues
  • Stack traces and grouping
Start free

Compare the plans in detail

See your next error before your users report it.

Start free