<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss" -->

---
title: Introducing LUX Sidecar: Your SpeedCurve Companion – CSS...
description: Harry Roberts has released LUX Sidecar, a small independent plugin that complements SpeedCurve's LUX RUM agent by adding browser and navigation context to...
canonical: https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing LUX Sidecar: Your SpeedCurve Companion – CSS Wizardry | daily.dev
og:description: Harry Roberts has released LUX Sidecar, a small independent plugin that complements SpeedCurve's LUX RUM agent by adding browser and navigation context to...
og:url: https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss
og:image: https://api.daily.dev/og/posts/TDkJC6Uss.png
og:image:alt: Introducing LUX Sidecar: Your SpeedCurve Companion – CSS Wizardry
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing LUX Sidecar: Your SpeedCurve Companion – CSS Wizardry

**[CSS Wizardry](https://daily.dev/sources/csswizardry)** · [@csswizardry](https://daily.dev/csswizardry) · 10 min read · 4 upvotes · 0 comments

## Summary

Harry Roberts has released LUX Sidecar, a small independent plugin that complements SpeedCurve's LUX RUM agent by adding browser and navigation context to real-user monitoring data. It captures network conditions, cache state, protocol, compression ratio, service worker involvement, and a new metric called Unattributed Navigation Overhead (UNO), sending them via LUX's addData() API. The tool requires an existing SpeedCurve account and standard LUX snippet, is zero-config on the script side but requires manual setup of custom metrics and dimensions in SpeedCurve's dashboard. It is distinct from the author's earlier Obs.js project, which adapts page behavior to context rather than reporting it for analysis.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://csswizardry.com/2026/08/introducing-lux-sidecar>

## Questions this post answers

### What is Unattributed Navigation Overhead (UNO) in web performance monitoring?

Unattributed Navigation Overhead is the portion of initial-document Time to First Byte that remains after subtracting the redirect, DNS, connection, and request-to-response-start phases exposed by the Navigation Timing API. It is a residual measurement, not a diagnosis, meaning a high UNO value indicates unexplained time but not its cause. Cross-origin redirect latency is a common source, since browsers can conceal parts of a redirect chain. The term was coined by Tim Vereecke.

_Teams debugging unexplained TTFB gaps can find related performance breakdowns curated on daily.dev._

### What is the difference between Time to First Byte (TTFB) and Time to Last Byte (TTLB)?

TTFB marks when the first response byte arrives, while TTLB measures from navigation start until responseEnd, capturing the complete initial-document response time. The gap between the two matters when the HTML response is large, compression is ineffective, throughput is constrained, or the server streams the document over time, revealing delivery issues that TTFB alone would hide.

_Developers comparing performance metrics can track RUM technique discussions on daily.dev._

### Do I need a SpeedCurve account to use LUX Sidecar?

Yes, LUX Sidecar is a plugin that requires an existing SpeedCurve RUM account and the standard LUX snippet already installed on a site. It is not a standalone analytics tool; it sends additional browser and navigation context, such as cache state, protocol, compression, and service worker involvement, through the LUX.addData() API to complement existing SpeedCurve data.

_Anyone evaluating RUM tooling add-ons can follow performance tool updates on daily.dev._

## Similar posts on daily.dev

- [Web-Perf Wednesday 005 – RUM Needs More Than a Percentile – CSS Wizardry](https://daily.dev/posts/web-perf-wednesday-005-rum-needs-more-than-a-percentile-css-wizardry-drravlqbb) · CSS Wizardry · 1 upvotes · 0 comments
- [Web-Perf Wednesday 011 – SpeedCurve’s INP Observer Missed Its Threshold – CSS Wizardry](https://daily.dev/posts/web-perf-wednesday-011-speedcurve-s-inp-observer-missed-its-threshold-css-wizardry-sb7xa8ziw) · CSS Wizardry · 0 upvotes · 0 comments
- [Meet Your Users Where They Are with Obs.js – CSS Wizardry](https://daily.dev/posts/meet-your-users-where-they-are-with-obs-js-css-wizardry-zp2fbdt4p) · CSS Wizardry · 14 upvotes · 0 comments
- [Real User Monitoring: Focus, depth, and clarity from real browser sessions](https://daily.dev/posts/real-user-monitoring-focus-depth-and-clarity-from-real-browser-sessions-uueawl42c) · Calibre · 0 upvotes · 0 comments

---

Tags: [#webdev](https://daily.dev/tags/webdev), [#javascript](https://daily.dev/tags/javascript)

[View this post on daily.dev](https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing LUX Sidecar: Your SpeedCurve Companion – CSS Wizardry","url":"https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss"},"datePublished":"2026-08-18T15:12:04.168Z","dateModified":"2026-09-14T09:00:41.863Z","description":"Harry Roberts has released LUX Sidecar, a small independent plugin that complements SpeedCurve's LUX RUM agent by adding browser and navigation context to...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a157c0ac2354e4ae202409bc7986fc81?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/a157c0ac2354e4ae202409bc7986fc81?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"CSS Wizardry","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Person","name":"Harry Roberts","url":"https://daily.dev/csswizardry","image":"https://media.daily.dev/image/upload/s--6zcMNpvC--/f_auto/v1755686282/avatars/avatar_Lw7jrTalrSeSbSjzuBQBH?_a=BAMClqZW0","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":230}},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"webdev,javascript","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"CSS Wizardry","item":"https://daily.dev/sources/csswizardry"},{"@type":"ListItem","position":3,"name":"Introducing LUX Sidecar: Your SpeedCurve Companion – CSS Wizardry"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-lux-sidecar-your-speedcurve-companion-css-wizardry-tdkjc6uss#faq","mainEntity":[{"@type":"Question","name":"What is Unattributed Navigation Overhead (UNO) in web performance monitoring?","acceptedAnswer":{"@type":"Answer","text":"Unattributed Navigation Overhead is the portion of initial-document Time to First Byte that remains after subtracting the redirect, DNS, connection, and request-to-response-start phases exposed by the Navigation Timing API. It is a residual measurement, not a diagnosis, meaning a high UNO value indicates unexplained time but not its cause. Cross-origin redirect latency is a common source, since browsers can conceal parts of a redirect chain. The term was coined by Tim Vereecke. Teams debugging unexplained TTFB gaps can find related performance breakdowns curated on daily.dev."}},{"@type":"Question","name":"What is the difference between Time to First Byte (TTFB) and Time to Last Byte (TTLB)?","acceptedAnswer":{"@type":"Answer","text":"TTFB marks when the first response byte arrives, while TTLB measures from navigation start until responseEnd, capturing the complete initial-document response time. The gap between the two matters when the HTML response is large, compression is ineffective, throughput is constrained, or the server streams the document over time, revealing delivery issues that TTFB alone would hide. Developers comparing performance metrics can track RUM technique discussions on daily.dev."}},{"@type":"Question","name":"Do I need a SpeedCurve account to use LUX Sidecar?","acceptedAnswer":{"@type":"Answer","text":"Yes, LUX Sidecar is a plugin that requires an existing SpeedCurve RUM account and the standard LUX snippet already installed on a site. It is not a standalone analytics tool; it sends additional browser and navigation context, such as cache state, protocol, compression, and service worker involvement, through the LUX.addData() API to complement existing SpeedCurve data. Anyone evaluating RUM tooling add-ons can follow performance tool updates on daily.dev."}}]}
```

