Know what identity is doing
Who is active, what is slow, what failed and why — from a dashboard you did not have to assemble, over a request trail you can query
Audience
Who is active in this project, and when.
Unique active users per day
Activity by hour and weekday
Audience
Product questions, answered from identity data you are already producing
Requests
Every call the platform served, as it happened.
| Time | Method | Status | Source | Path | Message |
|---|---|---|---|---|---|
| 12:04:11.204 | POST | 200 | gateway | /auth/signin | session issued |
| 12:04:10.881 | GET | 200 | gateway | /.well-known/jwks.json | cached |
| 12:04:09.117 | POST | 401 | gateway | /auth/signin | invalid credentials |
| 12:04:08.640 | POST | 200 | oauth | /oauth/token | authorization_code exchanged |
| 12:04:07.019 | POST | 429 | gateway | /auth/signin | rate limit exceeded |
| 12:04:05.552 | POST | 502 | functions | /functions/webhook-relay | upstream unavailable |
| 12:04:04.238 | GET | 200 | gateway | /auth/session | session verified |
| 12:04:02.907 | POST | 202 | notifications | /notifications/send | email queued · email-otp-verification |
Status codes over time, then the individual requests — with session, latency and edge on each row
Active users
Unique users per day, over any window you pick
Activity heatmap
Density by hour and weekday — when your product is actually used
Method breakdown
Which ways in people actually take, and which you can retire
Retention
Who came back, grouped by when they first signed up
Monitoring you did not have to set up
Throughput by status class, by endpoint, and the bandwidth moving through. The monitoring exists because the platform served the calls — there is no agent to install and no metrics pipeline to keep alive
Requests
Volume and status codes per endpoint over time
Latency
p50, p95 and p99, split by endpoint and by edge
Network
Geography and edge distribution of live traffic
Errors
Failure rate with the failing requests one click away
Network
Bandwidth in and out, minute by minute.
Web bandwidth total per minute
Total bandwidth used per minute, in bytes
Ingress per minute
Egress per minute
Bandwidth and throughput as live series — the brand-coloured line is your traffic, minute by minute
See it before your inbox does
A wall of 5xx after a release, a wave of 401s from one client, an endpoint that quietly started refusing everyone. It shows up in the shape of the series long before someone writes in about it
Throughput by HTTP status
The shape changes before anyone writes in.
Web throughput by HTTP status
Grouped by status class
Status classes over time, so a change in shape is what you notice — not a number in a table
Status classes
2xx, 4xx and 5xx as separate series, so a spike has an obvious colour
Per endpoint
Narrow to the path that changed shape, then read its requests
Nothing to instrument
The series exist because the platform served the calls, not because you wired an agent
Logs you can query
One trail across authentication, functions, notifications and system events — with a query language, not a search box
Explorer
Write a query, get rows, keep the query
Request logs
Every call with its session, decision, duration and origin
Function and system logs
Your code and the platform, in the same place and the same schema
Audit trail
Who changed which setting, in which environment, and when
Explorer
One trail across auth, functions, notifications and system events.
select ts, email, reason, ip from auth_events where event = "signin" and ok = false
| ts | reason | ip | |
|---|---|---|---|
| 12:04:11 | [email protected] | bad_password | 31.22.8.4 |
| 12:03:52 | [email protected] | user_banned | 77.14.2.90 |
| 12:02:19 | [email protected] | mfa_required | 81.3.44.7 |
| 11:59:03 | [email protected] | bad_password | 31.22.8.4 |
A query language over the same trail, so "which sign-ins failed and why" is one query
Every call is already an event
You do not instrument anything. The same call your product makes is the row you query later, with the session and decision attached.
const { data: verified } = await nulvless.auth.verify({
resource: "proj_16tbwq34",
roles: ["owner", "admin"],
});One platform, from your first user
Focus on your product. We handle identity infrastructure
What you would have built
Six areas, every one of them a project of its own.
- Authenticationpasswords, providers, MFA, sessions
- AuthorizationRBAC, scopes, per-resource grants
- OAuth serverOIDC discovery, JWKS, PKCE
- Edge functionsDeno runtime, deploys, rollback
- Notificationstemplates, providers, delivery logs
- Observabilitymonitoring, audit trail, query