Every signal from your product, on your own infrastructure
SignalMonitor is a self-hosted telemetry core: product analytics, error tracking with source maps, LLM observability, traces and spans, uptime monitors, and alerts — in one place, with your data never leaving your servers.
import { createSignalMonitorClient } from "@sigmon/sdk/node"; const sigmon = createSignalMonitorClient({ endpoint, apiKey }); // product analytics sigmon.track("checkout.started", { plan: "team" }); // errors with release + source-map resolution sigmon.captureError(err, { release: process.env.SOURCE_COMMIT }); // LLM calls with model, tokens, cost, and latency sigmon.llm({ provider, model, inputTokens, outputTokens, costUsd });
Everything your product emits, correlated
Events, errors, LLM calls, traces, and monitors share the same project, environment, release, tenant, user, and session identity — so you can pivot from a spike to the exact session that caused it.
Product analytics
Events, funnels, retention cohorts, user paths, click maps, segments, dashboards, and experiment results — queryable per project and environment.
Error tracking
Grouped errors with breadcrumbs, incident triage, and CI-uploaded source maps resolved strictly by project, environment, and release.
LLM observability
Every LLM call with tokens, latency, and cost — aggregated by model, prompt, and tenant, so you know exactly who and what is spending.
Traces, spans & APM
Distributed traces with span timelines, endpoint performance, service maps, Web Vitals, and runtime profiles.
Sessions & feedback
Privacy-safe session timelines and replays, NPS surveys, in-app message campaigns, and a browser feedback widget.
Alerts & uptime
HTTP and heartbeat monitors, alert rules with webhook and email channels, and a system health view of your own install.
From fleet overview to the exact session
Start from every project at once, narrow to a release, and end on the session and the bug report that explain it.
Cross-project Home
A fleet-wide KPI strip, a “needs you now” feed ranked by severity, and a project × signal matrix. Signals a project never sent show as not instrumented, never as a zero.
Release health
Per release: adoption, error-free sessions, errors it introduced, p95 trace latency, and feedback volume — so a bad deploy is visible before the support queue fills.
Session timeline
One time-ordered view of a session across breadcrumbs, events, errors, traces, LLM calls, and feedback, with a session score on the project Overview.
Time on site & page paths
Engaged time per session, pages per session, bounce rate, and your top pages with entries and exits, plus the page path inside every session. Until the browser SDK sends page views, it says not instrumented — never a zero.
Feedback triage
Bug reports get a status, priority, assignee, and tags. Hosts can opt in to attach a masked copy of the page — serialised markup, never a pixel screenshot.
Masked snapshots
Inputs and sensitive areas are masked in the browser before anything is sent, the server sanitises it again, and the console shows it in a sandboxed frame. Off unless your app and the environment both enable it.
Pinned navigation
Each project pins the screens that fit it — an iOS app, a backend, a fullstack service — and everything else stays one click away under More.
Your telemetry is product data. Keep it.
SignalMonitor runs on your own VPS with Docker Compose: a TypeScript API, a worker, Postgres, and Redis. No usage-based pricing, no data leaving your infrastructure, no per-seat surprises.
- Single Docker Compose install, smoke-tested on every release
- Postgres as the source of truth — plain SQL, your backups
- Worker-owned retention, backups, and warehouse exports
- Project + environment scoped API keys, CI-only upload tokens
- TypeScript SDK for Node.js, browser, and Next.js
# deploy your own instance git clone https://github.com/DiogoHSM/sigmon cd sigmon cp .env.example .env # set your secrets docker compose up -d # API, worker, Postgres, and Redis are up curl -s localhost:3000/health
Free to use, source in the open. Download it, read it, self-host it for your company or your side project — free of charge, forever.
The one thing the license does not allow is taking SignalMonitor and reselling it to third parties as a hosted or managed service. See the license for the exact terms.