The problem
Logs are the primary reason developers return to the Auth0 dashboard after initial setup, the first stop when something breaks in production. But the experience was broken. Search returned inconsistent results, state couldn’t be shared or bookmarked, and routing logs to external security tools required maintaining 11 separate, fragile manual integrations.
What I did
Research crystallized the core failure:
We have to ask the user if they’re still experiencing it. Debugging is very hard.
Developers couldn’t reconstruct a past investigation, share a search with a teammate, or pick up where they left off.
I redesigned search to serialize active filters and queries into the URL, so searches could be bookmarked, shared, and revisited naturally. Severity filters, full-text search, and the open log’s detail panel all live in the address bar.
For log streaming, rather than routing everything externally — expensive and noisy — I designed a guided setup so a developer could stand up a stream against any provider without hand-maintaining an integration. The flow starts from an honest empty state and walks through provider selection, scoped permissions, and configuration.
The key lever was control over what leaves the tenant: event-type filtering lets developers send exactly the categories they need outside, cutting unnecessary third-party costs, with a live payload preview confirming the shape of what ships. Pagination was rebuilt around a simple load-next interaction that made result boundaries legible without requiring developers to manage identifiers manually.
The outcome
- Launching log streaming to general availability replaced 11 legacy integrations with a single self-service platform.
- Log-related support tickets dropped, as the shareable search state resolved the highest-volume developer complaint.