Nadi is the central control plane for error telemetry from every app you ship ā PHP, JavaScript, Python, Go, and beyond. Send the error, we group it, you triage it.
No SDK lock-in Ā· Any HTTP client Ā· PII scrubbed on arrival
$ curl -X POST https://ingest.nadi.pro/v1/ingest \ -H "X-Ingest-Key: nadi_live_ā¢ā¢ā¢ā¢ā¢ā¢ā¢ā¢" \ -d '{ "event_id": "3f9cā¦b21a", "level": "error", "exception": { "type": "TypeError" } }' # ā 202 Accepted grouped ā issue #1042
One backend for every runtime you ship
Three principles run through the whole platform.
Ingest returns 202 after only cheap in-memory work, then batches to storage async. A slow or down store never slows the app being monitored.
Per-runtime normalisers understand PHP, minified JS, Python and Go stack formats ā so the same error groups into one issue, not a thousand.
PII is scrubbed before anything is stored, returned or forwarded ā first-class from day one, and ready for government-grade requirements.
Everything your team needs to find, understand and resolve issues.
Occurrences roll up into deduplicated issues with counts, levels and the latest stack trace.
Open, resolve, reopen, mute and acknowledge ā assign issues to the right teammate.
See volume over time at a glance and spot regressions the moment they spike.
Owner, admin, member and viewer roles scope what each teammate can see and do.
New-issue and regression alerts over email, Slack, Telegram and webhooks.
Trends across projects and environments to understand where errors come from.
No agent to babysit. Point your app at an ingest key and you are live.
Your app POSTs an error envelope to the ingest endpoint, authenticated by a per-project ingest key.
Nadi scrubs, fingerprints and groups each occurrence into the right issue ā across every runtime.
Your team triages from a clean inbox: assign, resolve, mute, and get alerted on new issues and regressions.
Start capturing errors across every app you run ā in minutes.