Every error, traced to its line.
Artisan is error tracking for web teams. Exceptions, slow queries and deploys live in one timeline, searchable down to the commit that shipped them.
Free for 5,000 events a month · SOC 2 Type II
Trace req_8f2c1a
5 spans · 412 ms
-
Request
POST /checkout
web-3 · Chrome 128 · macOS
412 ms
-
Middleware
Authenticate session
Redis GET session:9d41 · hit
4 ms
-
Query
Load open orders
Postgres · 38 queries, 1 missing index
318 ms
-
Job
ChargeCard dispatched
Queue payments · attempt 3 of 3
async
-
Exception
PaymentTimeoutException
app/Billing/Charge.php:88
ART-2288 · same fingerprint · merged
ART-2291
Release 4.18.2 · a41f9c2
Resolved
p95 response time, POST /checkout
184
ms
0
budget ≤ 300
600 ms
- Events
- 1,284 24h
- Users hit
- 312
- Error rate
- 0.02 %
Resolved by Dana Reyes · Sep 12, 2026, 2:08 PM PT · deploy #918
The error tracker behind 2,140 production apps
Fieldnote
BRIGHTLINE
tally.app
Marrow Health
OXBOW
parcel/ship
One timeline, from request to root cause
Artisan keeps the exception, the request and the deploy that shipped it together, so a bug never loses the story of how it happened.
- Stack traces with source
- Every frame shows the line, the local variables and the commit that last touched it.
- Charge.php:88 · a41f9c2
- Request traces
- Queries, cache hits and queued jobs line up under the request that caused them.
- 412 ms · 38 queries · 2 jobs
- Grouping that holds
- Ten thousand identical exceptions become one issue with a count, not ten thousand emails.
- fingerprint 9c1e04 · 1,284 events
- Alerts that wait
- Page on a regression or a spike, not on the first 404 of the morning.
- > 50 events / 5 min → #oncall
- Search every event
- Filter by user, route, release or any tag your code attaches.
- route:/checkout release:4.18.*
- Releases and suspects
- Each deploy is marked on the graph; new issues point at the commit that introduced them.
- deploy #918 · 3 suspect commits
Open the issue. Artisan already did the digging.
Every exception arrives grouped, with the request, the stack and the last deploy attached. Assign it from the same screen your on-call opened from Slack.
- Breadcrumbs before the crash
- The clicks, requests and log lines from the 30 seconds before it threw.
- Comments on the frame
- Discuss a null where it happened in the stack, not in a thread nobody finds later.
- Ownership that routes itself
- CODEOWNERS and suspect commits decide who gets paged, not whoever happens to be awake.
checkout-api / production
ART-2291
PaymentTimeoutException
First seen 11:42 AM PT · assigned to Dana Reyes
release:4.18.1 · route:/checkout
Gateway did not respond within 8,000 ms while charging order #58213 (attempt 3 of 3).
| Event | Release | Host | ms | Status |
|---|---|---|---|---|
| evt_4c19a2 | 4.18.0 | web-1 | 8,012 | 500 |
| evt_4c1b07 | 4.18.1 | web-3 | 8,004 | 500 |
| evt_4c1f5e | 4.18.1 | web-3 | 8,019 | 500 |
| evt_4c2210 | 4.18.2 | web-2 | 184 | 200 |
app/Billing/Charge.php
in Charge::capture
-
85
public function capture(Order $order): Receipt -
86
{ -
87
$payload = $this->payloadFor($order); -
88
$response = $this->gateway->charge($payload, timeout: 8000); -
89
return Receipt::fromResponse($response);
Dana Reyes linked a fix
PR #4127 · a41f9c2 · deploying to production
What catching it first adds up to
Across Artisan apps · Q3 2026
- events grouped into issues last quarter
- 3.1B
- median time from first exception to Slack alert
- 41 s
- fewer repeat incidents in a team’s first year
- 63%
- SDKs and integrations, maintained by Artisan
- 58
We found a checkout timeout in nine minutes because the issue already pointed at the query, the deploy and the commit. Nobody grepped a log.
Adaeze Morgan
Staff Engineer, Fieldnote
47 → 9 min
median time to resolve a checkout incident
From first exception to fixed in three moves
No agent to babysit. Most teams see their first grouped issue within five minutes of installing.
-
Step 1
Install the SDK
Add one package and a DSN; errors, traces and deploys start flowing on the next request.
npm install @artisan/sdk
-
Step 2
Triage the issue
Open the grouped issue, read the trace, and assign it to whoever wrote the suspect commit.
ART-2291 · 1,284 events
-
Step 3
Ship and resolve
Link the pull request; Artisan resolves the issue when the release lands and reopens it if it returns.
deploy #918 · 2:08 PM PT
58 integrations
Plugs into the stack you already run
SDKs for the languages on your servers, and alerts wherever your on-call already looks.
Browse integrations-
Js
01
JavaScript
Browser and Node
-
Py
02
Python
Django, FastAPI
-
Rb
03
Ruby
Rails, Sidekiq
-
Ph
04
PHP
Symfony, workers
-
Go
05
Go
net/http, gRPC
-
Sw
06
iOS
Swift crash reports
-
Sl
07
Slack
Alerts, triage
-
Gh
08
GitHub
Suspect commits
-
Pd
09
PagerDuty
On-call paging
-
Jr
10
Jira
Two-way issues
-
Ot
11
OpenTelemetry
Traces in, spans out
-
Ap
12
REST API
JSON, OpenAPI 3.1
Catch the next bug before a customer does.
Free for 5,000 events a month. Most teams install the SDK and see their first issue in under five minutes.