Making performance problems easier to find.
Performance Insights gave developers function-level visibility into where their backend was spending time—so they could find the slow part without digging through everything else first.
01 / THE PROBLEM
When a request is slow, where did the time go?
We could report the total runtime of an API request, query, or task. Individual functions were much harder to see across request history, so developers had to work backward from the overall runtime and debug the function stack themselves.
For a request with a lot going on, the path from “this is slow” to “this is the thing making it slow” had too much noise in between.
02 / THE IDEA
Analyze what actually impacts performance.
My engineering manager loved profiling our own application and wanted to give Xano developers some of that same visibility. The technical direction was intentionally lightweight: collect profiling data in Redis for functions where performance could vary meaningfully, tracking total runtime and executions over time.
We didn’t need to profile everything. Simple utility functions weren’t especially interesting. The goal was to capture enough information around database operations, custom functions, tasks, and other variable workloads to point developers toward the places worth investigating.
He defined the technical direction and handed the feature to me to build full stack. My job was to turn that data into something useful.
03 / THE PRODUCT FIX
See what’s most important first.
Runtime statistics alone still left developers with a lot to interpret. I designed the interface around the next useful step.

Functions were automatically sorted from least efficient to most efficient, so the biggest potential problems appeared at the top. From there, developers could compare total runtime, average runtime, total usage, and repeated function calls.
They could also filter and drill down by function type. If database operations looked suspicious, for example, they could narrow the view to database functions and investigate whether a query or index might be the culprit.
I turned profiling data into a place to start investigating.
04 / ITERATIONS
Insights you can act on immediately.
Performance Insights started as a dedicated experience. It became foundational enough that we brought a summary onto the dashboard, so developers could see usage and performance signals as soon as they opened their workspace.
We also added inline Performance Insights to the function stack. While building or debugging an API, developers could see function-level runtime and usage stats right beside the work: average runtime, total runtime, execution count, and the time range behind the data.


The progression
Dedicated view: Find a performance problem.
Dashboard: Spot the signal when you open a workspace.
Function stack: See the relevant data while you edit.
THE RESULT
Make the slow part easier to see—and easier to fix.
In the last 90 days, 697 profiler selections led to a function-stack edit. Nearly half of those edits happened within 10 minutes, with a median time to edit of 12 minutes. The feature also kept earning a place closer to the work: first as a dedicated view, then on the dashboard, and finally inline in the function stack.