Skip to content

Instantly share code, notes, and snippets.

Rick Viscomi rviscomi

Block or report user

Report or block rviscomi

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View (

(10min demo at the meetup, 20 November 2019, Amsterdam)

CrUX is the Chrome User Experience Report, a public dataset of performance and UX data from real Chrome users in the field.

Quick facts:

  • Launched in November 2017
  • Monthly data dumps (second Tuesday)
View http-archive-har-payload.json
"startedDateTime": "2019-07-11T23:37:41.920+00:00",
"title": "Run 1, First View for",
"id": "page_1_0_1",
"pageTimings": {
"onLoad": 13624,
"onContentLoad": -1,
"_startRender": 4600
"_minify_total": -1,
View gist:6033a9f723a78d714d0fec2e8c9bc510
"offscreenscore": [
rviscomi / 01_01.nljson
Last active Jul 24, 2019
Example of Web Almanac metric
View 01_01.nljson
View parsed-css.json
"type": "stylesheet",
"stylesheet": {
"rules": [
"type": "comment",
"comment": "! jQuery UI - v1.9.2 - 2012-11-23\n*\n* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css,, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css, jquery.ui.theme.css\n* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT ",
"position": {
"start": {
"line": 1,
rviscomi / crux-cls.sql
Created Jun 17, 2019
Query for cumulative layout shifts in the Chrome UX Report
View crux-cls.sql
SELECT AS form_factor,
ROUND(SUM(cls.density), 4) AS density
UNNEST(experimental.cumulative_layout_shift.histogram.bin) AS cls
origin = ''
rviscomi / summary_requests.sql
Last active Jul 22, 2019
Takes a HAR-based requests table and converts it into a CSV-style summary_requests table
View summary_requests.sql
CREATE TEMPORARY FUNCTION getSummary(payload STRING, crawlid INT64)
RETURNS STRUCT<requestid INT64, pageid INT64, startedDateTime INT64, time INT64, method STRING, url STRING, urlShort STRING, redirectUrl STRING, firstReq BOOLEAN, firstHtml BOOLEAN, reqHttpVersion STRING, reqHeadersSize INT64,
reqBodySize INT64, reqCookieLen INT64, reqOtherHeaders STRING, status INT64, respHttpVersion STRING, respHeadersSize INT64, respBodySize INT64, respSize INT64, respCookieLen INT64, expAge INT64, mimeType STRING, respOtherHeaders STRING,
req_accept STRING, req_accept_charset STRING, req_accept_encoding STRING, req_accept_language STRING, req_connection STRING, req_host STRING, req_if_modified_since STRING, req_if_none_match STRING, req_referer STRING, req_user_agent STRING,
resp_accept_ranges STRING, resp_age STRING, resp_cache_control STRING, resp_connection STRING, resp_content_encoding STRING, resp_content_language STRING, resp_content_length STRING, resp_content_location STRING, resp_content_type STRING, resp_date ST
rviscomi /
Last active May 7, 2019
"Crash Course in CrUX" for the PerfMatters conference, April 2019
View emptyrecipe.html
<script type="application/ld+json">
"@context": "",
"@type": "Event"
"@context": "",
"@type": "Recipe"
You can’t perform that action at this time.