{
  "date": "2026-10-16",
  "site": "https://aainulraza.online/",
  "method": "Compare production asset files from npm run build on the provided source snapshot and revised source in the same local Node environment. Raw bytes are filesystem sizes; gzip estimates use Python gzip with mtime=0. Homepage-linked JS includes script and modulepreload asset URLs in built HTML.",
  "before": {
    "assets": [
      {
        "file": "assets/blog-D2hey_6e.js",
        "bytes": 949,
        "gzipBytes": 598
      },
      {
        "file": "assets/blog-fxp_tA9N.css",
        "bytes": 10819,
        "gzipBytes": 2852
      },
      {
        "file": "assets/common-DWjSs95v.css",
        "bytes": 28934,
        "gzipBytes": 7133
      },
      {
        "file": "assets/common-Dz_uBF6s.js",
        "bytes": 118135,
        "gzipBytes": 46364
      },
      {
        "file": "assets/main-Cpel_Ajv.js",
        "bytes": 8609,
        "gzipBytes": 3285
      },
      {
        "file": "assets/scene-CSLvzTw0.js",
        "bytes": 468684,
        "gzipBytes": 117603
      }
    ],
    "homepageLinkedJsBytes": 126744,
    "allBundledJsBytes": 596377,
    "allBundledCssBytes": 39753
  },
  "after": {
    "assets": [
      {
        "file": "assets/blog-B3gCHTQp.css",
        "bytes": 6255,
        "gzipBytes": 1849
      },
      {
        "file": "assets/blog-BXpauU_z.js",
        "bytes": 892,
        "gzipBytes": 544
      },
      {
        "file": "assets/common-7EIi95D7.css",
        "bytes": 10786,
        "gzipBytes": 3139
      },
      {
        "file": "assets/common-BsA9YFWB.js",
        "bytes": 1939,
        "gzipBytes": 939
      },
      {
        "file": "assets/main-Fhjv7CId.js",
        "bytes": 392,
        "gzipBytes": 267
      }
    ],
    "homepageLinkedJsBytes": 2331,
    "allBundledJsBytes": 3223,
    "allBundledCssBytes": 17041
  },
  "homepageLinkedJsReductionPercent": 98.16,
  "canonicalPages": 64,
  "articles": 55,
  "changes": [
    "Removed GSAP/ScrollTrigger, Lenis and conditional Three/WebGL scene dependencies.",
    "Replaced scroll-pinned project presentation with a normal responsive grid.",
    "Content is delivered in HTML without animation-gated visibility.",
    "Removed client analytics and blocked external ad loader; uses static AdSense ownership meta tag.",
    "Retained local fonts, responsive CSS, explicit image dimensions and lazy article-card images."
  ],
  "limits": [
    "This is a local build measurement, not Lighthouse or CrUX.",
    "No fresh browser timing or viewport/keyboard test was performed in this environment.",
    "Does not establish live server response times, Google indexing, conversions or AdSense approval.",
    "The original optional scene was conditional and did not load on every visitor device.",
    "Ad serving is disabled in this review release. Adding ads later requires compatible CSP/consent setup and new performance measurements."
  ]
}
