Skip to content

Watchdog vs Sentry ​

Watchdog is an open-source, self-hosted error tracker for teams who want the everyday parts of tools like Sentry on their own infrastructure, with a much smaller thing to run. This page is an honest comparison, including where Watchdog falls short.

The short version ​

WatchdogSentry
How you use itSelf-hosted onlyHosted service, or self-hosted
LicenseMIT, open sourceFunctional Source License (source-available)
What you runOne container and PostgreSQLA larger stack of services when self-hosted
Error tracking and groupingYesYes
Source mapsYesYes
Performance tracing and metricsYes, with dashboardsYes
Session replayYesYes
AlertsSlack, Discord, Telegram, emailMany integrations
MobileReact Native and Expo (JavaScript errors)Native iOS and Android, and more
SDK languagesJavaScript, TypeScript and PythonMany languages
MaturityEarly (version 0.x)Established

Where Watchdog fits ​

  • You want your error data to stay on your own servers.
  • You prefer a small stack that one person can run and understand.
  • Your apps are JavaScript, TypeScript or Python: browser, React, Node.js, NestJS, React Native, Expo, or a Python app or worker.
  • You want to read and change the code that monitors your code.

Where Sentry is the better choice ​

  • You need native crash reporting for iOS or Android, or SDKs for languages other than JavaScript and Python.
  • You want a managed service and do not want to run anything.
  • You rely on integrations and features Watchdog does not have yet, such as issue assignment, ticketing integrations, profiling or cron monitoring.
  • You need a long track record and a large ecosystem.

Switching or trying it alongside ​

Watchdog uses its own SDKs, not Sentry's, so you add Watchdog's packages to your apps instead of changing a DSN. You can run both at once while you compare them.

bash
npm install @watchdog-sdk/browser
ts
import { init } from '@watchdog-sdk/browser';

init({ dsn: 'https://<key>@your-watchdog.example.com/<project-id>', release: '1.0.0' });

Try it ​

Deploy on Railway

Or follow Getting started to run it with Docker. If you find something missing, open an issue. Early users shape what gets built next.

Released under the MIT License.