{
  "title": "Blacklight Inspection",
  "page_title": "Andrew's Blog",
  "uri_ins": "http://andrewnolan.dev/",
  "uri_dest": "https://andrewnolan.dev/",
  "uri_redirects": [
    "http://andrewnolan.dev/"
  ],
  "secure_connection": {},
  "host": "andrewnolan.dev",
  "config": {
    "emulateDevice": {
      "name": "Pixel 4a (5G)",
      "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36",
      "viewport": {
        "width": 353,
        "height": 745,
        "deviceScaleFactor": 3,
        "isMobile": true,
        "hasTouch": true,
        "isLandscape": false
      }
    },
    "cleareCache": true,
    "captureHar": true,
    "captureLinks": false,
    "enableAdBlock": false,
    "saveBrowserProfile": false,
    "numPages": 2,
    "defaultTimeout": 35000,
    "defaultWaitUntil": "networkidle2",
    "headless": true,
    "headers": {},
    "extraChromiumArgs": [
      "--disable-features=TrackingProtection3pcd",
      "--website-analysis-scan=e2a81905-d49f-4cbe-9fe8-55f104fa4e84"
    ],
    "extraPuppeteerOptions": {}
  },
  "browser": {
    "name": "Chromium",
    "version": "Chrome/127.0.6533.88",
    "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36",
    "platform": {
      "name": "Linux",
      "version": "4.4.302+"
    }
  },
  "script": {
    "host": "c71ac0e27012",
    "version": {
      "npm": "3.11.0",
      "commit": "dev"
    },
    "node_version": "v24.20.0"
  },
  "start_time": "2026-09-07T14:29:34.730Z",
  "end_time": "2026-09-07T14:29:52.666Z",
  "browsing_history": [
    "https://andrewnolan.dev/",
    "https://andrewnolan.dev/",
    "https://andrewnolan.dev/blogs"
  ],
  "hosts": {
    "requests": {
      "first_party": [
        "andrewnolan.dev"
      ],
      "third_party": [
        "andrewnolan.goatcounter.com"
      ]
    }
  },
  "reports": {
    "behaviour_event_listeners": {},
    "canvas_fingerprinters": {
      "data_url": {},
      "fingerprinters": [],
      "styles": {},
      "texts": {}
    },
    "canvas_font_fingerprinters": {
      "canvas_font": {},
      "text_measure": {}
    },
    "cookies": [],
    "fb_pixel_events": [],
    "tiktok_pixel_events": [],
    "twitter_pixel_events": [],
    "google_analytics_events": [],
    "key_logging": {},
    "session_recorders": {},
    "third_party_trackers": [
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2Fhttps://web.cs.wpi.edu/~rek/Projects/UNDP_B19.pdf.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FHelloWorld.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2Fhttps://dl.acm.org/doi/abs/10.1145/3534516.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink1.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink2.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FAcademyAwardsPrediction.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink4.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink5.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink6.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink7.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink8.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink9.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FChatGPTAdoptionSurvey.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink10.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FAiChangeEducation.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFeynmanTechnique.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink11.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FWordleWithChatGPT.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink12.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDontMakeMeThink13.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FTwoSigma.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FSeriousGames.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FWordleWithChatGPTPlusVision.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FElectricCarsDaily.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2F2023BlogReview.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FDebateSentiment.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FManagerOneOnOne.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FAsyncConstructor.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2Feli5JSX.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2Feli5ReactHooks.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2Feli5Closure.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur1.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur2.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur3.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur4.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur5.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur6.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {}
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/counter/%2Fblogs%2FFlaneur7.json"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "b": 153,
            "p": "/blogs",
            "rnd": "4zx6e",
            "s": "353,745,3",
            "t": "Andrew's Blog"
          }
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/blogs",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/count?p=%2Fblogs&t=Andrew%27s%20Blog&s=353%2C745%2C3&b=153&rnd=4zx6e"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "b": 153,
            "p": "/",
            "rnd": "29rky",
            "s": "353,745,3",
            "t": "Andrew's Blog"
          }
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/count?p=%2F&t=Andrew%27s%20Blog&s=353%2C745%2C3&b=153&rnd=29rky"
      },
      {
        "data": {
          "body": {},
          "filter": "||goatcounter.com^$third-party",
          "listName": "easyprivacy.txt",
          "query": {
            "b": 153,
            "p": "/",
            "rnd": "hakl0",
            "s": "353,745,3",
            "t": "Andrew's Blog"
          }
        },
        "stack": [
          {
            "fileName": "https://andrewnolan.dev/",
            "source": "ThirdPartyTracker RequestHandler"
          }
        ],
        "type": "TrackingRequest",
        "url": "https://andrewnolan.goatcounter.com/count?p=%2F&t=Andrew%27s%20Blog&s=353%2C745%2C3&b=153&rnd=hakl0"
      }
    ]
  }
}