How It Works
- Client sends a request — The client SDK attaches an
x-limelight-trace-idheader to every outgoingfetchandXHRrequest - Server receives the request — The server middleware reads the trace ID from the header and associates the incoming request with the same trace
- Limelight correlates both sides — In the UI, the client request and server request are grouped under the same trace, so you can inspect both in one place
What You Can See
With full-stack tracing enabled, each traced request shows: Client side:- Outgoing request URL, method, headers, and body
- Response status, headers, body, and timing
- Which React component initiated the request
- Incoming request URL, method, headers, and parsed body
- Response status, headers, body, and duration
- Server-side processing time
- Total round-trip time (client send → server process → client receive)
- Network latency vs. server processing time
- Matched request/response pairs under a single trace ID
Setup
1. Client SDK
Add Limelight to your React Native or React app:2. Server Middleware
Add Limelight to your server. Choose the integration that fits your stack:- Express
- Next.js Pages Router
Custom Trace Header
By default, Limelight usesx-limelight-trace-id as the trace header. If this conflicts with existing headers in your infrastructure, you can customize the name on both sides:
Client-Only or Server-Only
You don’t need both sides. Limelight works independently on either:- Client only — See all outgoing requests, console logs, renders, and state
- Server only — See all incoming requests and responses with timing
- Both — Everything above, plus automatic full-stack trace correlation