Skip to content

Commit 0955911

Browse files
authored
new release (#165)
1 parent d0a50e0 commit 0955911

2 files changed

Lines changed: 90 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,63 @@
11
# CHANGELOG - compare
22

3-
## UNRELEASED
3+
## 2.0.0 - 2026-05-12
4+
The first tagged release since 1.0.0 (2018). Compare has been rewritten
5+
underneath: a new waterfall engine, new visual-progress chart, a real
6+
filmstrip, Core Web Vitals, render-blocking metrics, accessibility work,
7+
and a modern build setup. Many of these changes shipped to
8+
https://compare.sitespeed.io between releases — this entry consolidates
9+
them.
10+
411
### Added
5-
* Added comment for request diff.
6-
* Upgraded to latest PageXray that will automatically calculate first/third party request + adding the possibility to configure it in a config file.
7-
* Added first/third party % to make it easier to see how much content that is actually third party.
8-
* Updated to PageXray 4.0.0
12+
* Swapped the waterfall renderer from PerfCascade to
13+
[waterfall-tools](https://github.com/pmeenan/waterfall-tools) and added
14+
a WebPageTest-style blend slider that fades HAR2 over HAR1 on a shared
15+
time axis. A side-by-side / overlay toggle is remembered across
16+
reloads, and hovering a request highlights it in the paired waterfall.
17+
* Page X-ray table grouped into sections (Content, Render blocking,
18+
Visual metrics, Core Web Vitals, CPU, First/Third party) with a Δ
19+
column that highlights regressions in red and improvements in green,
20+
plus a per-table "Only differences" toggle.
21+
* Filmstrip section (when both HARs have one) with frames sampled from
22+
the VisualProgress change points, and a lightbox for full-size frames.
23+
* Visual progress chart now shows per-HAR timing markers
24+
(First Visual Change, FCP, LCP, Speed Index) and a thumbnail strip
25+
under each line.
26+
* Core Web Vitals row in the page X-ray table:
27+
First Contentful Paint, Largest Contentful Paint, Total Blocking Time
28+
and Cumulative Layout Shift (3 decimals).
29+
* Render-blocking metrics from Chrome HARs (blocking, potentially
30+
blocking, in-body parser blocking).
31+
* Long Tasks, Total Blocking Time and Max Potential FID under CPU.
32+
* `stripVersion` configuration flag (and a checkbox on the start page)
33+
to ignore query-string version parameters when diffing requests for
34+
the same URL.
35+
* Support for `.har.gz` HAR files via the browser's native
36+
`DecompressionStream`.
37+
* Skip-to-content link, ARIA labels and visually-hidden table captions
38+
for screen readers.
39+
* Comment slot for the request/response diff section
40+
(`comments.requestDiff` in the config file).
41+
* First/third party support — PageXray now auto-detects the host page's
42+
party automatically, and the share of first vs third party requests
43+
is shown next to each row.
44+
45+
### Changed
46+
* Build tooling moved to [Vite](https://vitejs.dev/). The build output
47+
directory is now `dist/`, not `build/`. Classic compare scripts are
48+
served verbatim from `public/` and version-stamped at build time so a
49+
new deploy invalidates any stale cached copies.
50+
* Styling rewritten in plain CSS (Sass dropped) with a small design-token
51+
layer. The start page and result header were refreshed to make
52+
regressions easier to spot.
53+
* Templates rewritten as plain JS template literals (Template7 dropped).
54+
* Upgraded PageXray to 4.x.
55+
56+
### Removed
57+
* The service worker / Workbox offline support. A one-time cleanup
58+
unregisters any service worker still installed from older versions
59+
so the first reload after upgrading is fresh.
60+
961

1062
## 1.0.0 2018-11-28
1163
### Added

README.md

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,44 @@
11
# Compare HAR files
2-
Make it easier to find regressions by comparing your [HAR](http://www.softwareishard.com/blog/har-12-spec/) files. Test it out https://compare.sitespeed.io or look at the video: https://youtu.be/dCThwpglIeE
2+
Make it easier to find regressions by comparing your [HAR](http://www.softwareishard.com/blog/har-12-spec/) files. Test it out https://compare.sitespeed.io.
33

44
![Logo](https://raw.githubusercontent.com/sitespeedio/compare/main/img/compare.png)
55

66
## First: Shout out!
7-
We couldn't built compare without the support or inspiration from the following people:
8-
* Thank you [Michael Mrowetz](https://twitter.com/MicMro) :bow: for creating [PerfCascade](https://github.com/micmro/PerfCascade) (the SVG HAR waterfall viewer).
9-
* Thank you [Patrick Meenan](https://twitter.com/patmeenan) :bow:. Pat has built the HAR compare viewer in [WebPageTest](https://www.webpagetest.org/) that inspired us to the idea with the slider.
7+
We couldn't have built compare without the support or inspiration from the following people:
8+
* Thank you [Patrick Meenan](https://twitter.com/patmeenan) :bow:. The waterfall is rendered with Pat's [waterfall-tools](https://github.com/pmeenan/waterfall-tools), and the WebPageTest HAR compare viewer is what inspired the blend slider.
9+
* Thank you [Michael Mrowetz](https://twitter.com/MicMro) :bow:. Earlier versions of compare used Michael's [PerfCascade](https://github.com/micmro/PerfCascade) and it carried us for years.
1010

1111
If you like our project, please give them also some extra love :)
1212

1313
## Comparing
1414
![Compare two different HAR files](https://raw.githubusercontent.com/sitespeedio/compare/main/docs/img/compare.png)
1515

1616
## How it works
17-
As long as your HAR files follow the [HAR specification](http://www.softwareishard.com/blog/har-12-spec/) you can use them in Compare. Standard HARs will give you some basic functionality and HARs from WebPageTest and sitespeed.io will give you more.
17+
As long as your HAR files follow the [HAR specification](http://www.softwareishard.com/blog/har-12-spec/) you can use them in compare. Standard HARs give you the basics; HARs from WebPageTest and sitespeed.io/Browsertime unlock the extras.
1818

19-
### HARs from Firefox/Chrome/Safari (and other browsers).
20-
For all HARs we will show the waterfall (using [PerfCascade](https://github.com/micmro/PerfCascade)) and statistics for the page (using [PageXray](https://github.com/sitespeedio/pagexray)).
19+
The result page is the same for every HAR — sections that don't apply silently stay hidden, so a plain Chrome HAR doesn't show a half-empty "filmstrip" or "CPU" block.
2120

22-
### WebPageTest
23-
If you add a [WebPageTest](https://www.webpagetest.org) HAR we will show SpeedIndex and FirstVisualChange and if you used Chrome to collect CPU stats, we will show that too. You will get some extra sugar if your HAR is from WebPageTest! Do you have something else that we should add? Create an issue or send a PR!
21+
### What you get for every HAR
22+
* A **stacked waterfall** rendered by [waterfall-tools](https://github.com/pmeenan/waterfall-tools). Both HARs share the same time axis so widths are comparable at a glance. A **blend slider** fades HAR2 over HAR1, and a per-result toggle switches between **side-by-side** and **overlay**. Hovering a request highlights its peer in the other waterfall.
23+
* A **Page X-ray** table (powered by [PageXray](https://github.com/sitespeedio/pagexray)) grouped into sections — Content, Render blocking, Visual metrics, Core Web Vitals, CPU and First/Third party. A **Δ column** shows the HAR2−HAR1 delta with regressions in red and improvements in green. An **"Only differences"** toggle hides rows where the two HARs match.
24+
* A **request/response diff** when both HARs are for the same URL — added requests, removed requests, and (per-request) size, status and timing changes. Tick **"Strip version parameters"** on the start page (or set `"stripVersion": true` in your config) to ignore cache-busting query strings.
25+
* A **domains** breakdown.
26+
* Chrome HARs with priority hints also produce a **Render blocking** row (blocking / potentially blocking / in-body parser blocking).
27+
* `.har` and `.har.gz` are both accepted on drag/drop and via URL.
2428

25-
### sitespeed.io/Browsertime
26-
If you want even more sugar, you should use HAR files from [sitespeed.io](https://github.com/sitespeedio/sitespeed.io) or [Browsertime](https://github.com/sitespeedio/browsertime): SpeedIndex, FirstVisualChange, LastVisualChange and a graph for VisualProgress.
29+
### Extras for WebPageTest HARs
30+
SpeedIndex, FirstVisualChange and, if the run was captured on Chrome with the CPU profile enabled, CPU timings.
2731

28-
If you deploy your result from your sitespeed.io run to a server and use **--resultBaseURL** when you run sitespeed.io, we will also pickup the screenshot, video and a link to the result page.
32+
### Extras for sitespeed.io / Browsertime HARs
33+
* **Visual progress chart** with a line per HAR and vertical timing markers (First Visual Change, FCP, LCP and Speed Index) so a regressed metric shows up as two side-by-side guide lines.
34+
* A **filmstrip** section sampled from the VisualProgress change points, with a lightbox for full-size frames, plus a small thumbnail strip under the visual-progress chart.
35+
* The full set of visual metrics (FirstVisualChange, LargestImage, Logo, Heading, Speed Index, LastVisualChange, Visual Readiness).
36+
* **Core Web Vitals**: First Contentful Paint, Largest Contentful Paint, Total Blocking Time, Cumulative Layout Shift.
37+
* CPU details when sitespeed.io ran Lighthouse: Long Tasks, Total Blocking Time, Max Potential FID.
2938

30-
If you also run with **--firstParty** (adding a regex that show which assets that are first/third parties) we will will show data grouped by party.
39+
If you deploy your sitespeed.io result with **--resultBaseURL**, compare will pick up the screenshot, video and a link to the result page.
40+
41+
PageXray auto-detects first-party hosts from the page URL. If you want to override it (e.g. multi-domain sites), pass a regex via **--firstParty** when running sitespeed.io, or set `"firstParty"` in the config below; the result page then shows a first-vs-third party breakdown.
3142

3243
![First Party vs Third Party!](https://raw.githubusercontent.com/sitespeedio/compare/main/docs/img/firstparty.png)
3344

@@ -67,6 +78,7 @@ But you can also add some extra sugar. All the extras are optional:
6778
},
6879
"title": "The page title used in the title bar",
6980
"firstParty" : " (.*wikipedia.*||.*wikimedia.*)", // RegEx that defines first party requests
81+
"stripVersion": true, // ignore query-string version params when diffing requests
7082
"comments": {
7183
"intro": "Extra information put at the top of the page",
7284
"waterfall": "Text displayed at top of the waterfall",
@@ -102,18 +114,22 @@ Add the parameters **?har1=FULL_URL1&har2=FULL_URL2&compare=1** and the two HAR
102114

103115
## Developers
104116

105-
To run the project locally start a server with:
117+
The project is built with [Vite](https://vitejs.dev/). Compare uses a small Vite-bundled entry (`src/main.js`, which pulls in the CSS and the waterfall-tools wrapper) plus a set of classic-script modules in `public/js/compare/` that share globals on `window`. Vite serves `public/` verbatim in both dev and production, so editing a file under `public/js/compare/` is a hard reload away from running.
118+
119+
Run the dev server:
106120
```
107121
npm run develop
108122
```
109123

110-
Send us a PR/create an issue. If you have big change coming up, please discuss it with us in an issue first!
124+
Send us a PR / create an issue. If you have a big change coming up, please discuss it with us in an issue first.
111125

112126
## Deploy your own version
113127
Deploying your own version is easy:
114128
1. Clone the repo: `git clone git@github.com:sitespeedio/compare.git`
115-
2. Build: `cd compare && npm run build`
116-
3. Copy everything in *build/* to your server
129+
2. Build: `cd compare && npm install && npm run build`
130+
3. Copy everything in `dist/` to your server.
131+
132+
The build version-stamps the classic compare scripts so a new deploy invalidates any stale copies cached by visitors.
117133

118134
## Privacy
119135
We take your privacy really serious: We do not use any tracking software at all (no Google Analytics or any other tracking software) in [compare.sitespeed.io](https://compare.sitespeed.io). The page do no call home.

0 commit comments

Comments
 (0)