https://slides.by331.net

Page structure & technical metrics

Words

530

Action candidates

0

Images

12

HTML

743 KB

Copy

Title chars
56
Meta chars
142
H1
1
H2
6

Action

Forms
0
On-site links
16
Off-site links
5

Security & metadata

HTTPS
yes
HSTS
no
CSP
no
nosniff
yes
viewport
yes
Icon
yes
JSON-LD
no
Analytics
no

Page

Tailwind

Scripts
2 ext / 9 inline
Alt
9 missing
Lang
en
Third-party hosts
1

Lighthouse

Simulated mobile · Performance

75 / 100

2026-09-13 · Lab data, not field data.

View details

Simulated mobile · Lab data, not field data
2026-09-13T01:13:31.398Z · Lighthouse 13.4.1

Performance75/ 100
Accessibility100/ 100
Best practices100/ 100
SEO100/ 100
LCP · Largest content1,468 ms
CLS · Layout shift0.014
TBT · Blocking time625 ms
FCP · First content1,400 ms
SI · Speed index9,902 ms

Results vary by server, network and environment, independently of taste/conversion scores. Diagnostics retain Lighthouse wording.

Minimize main-thread work

10.2 s

Consider reducing the time spent parsing, compiling and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to minimize main-thread work

Elements & resources
{
  "type": "table",
  "items": [
    {
      "group": "other",
      "duration": 7611.975999999822,
      "groupLabel": "Other"
    },
    {
      "group": "scriptEvaluation",
      "duration": 1217.4839999999917,
      "groupLabel": "Script Evaluation"
    },
    {
      "group": "styleLayout",
      "duration": 715.4680000000006,
      "groupLabel": "Style & Layout"
    },
    {
      "group": "paintCompositeRender",
      "duration": 411.85600000005087,
      "groupLabel": "Rendering"
    },
    {
      "group": "parseHTML",
      "duration": 136.86800000000002,
      "groupLabel": "Parse HTML & CSS"
    },
    {
      "group": "garbageCollection",
      "duration": 55.83200000000004,
      "groupLabel": "Garbage Collection"
    },
    {
      "group": "scriptParseCompile",
      "duration": 20.931999999999995,
      "groupLabel": "Script Parsing & Compilation"
    }
  ],
  "headings": [
    {
      "key": "groupLabel",
      "label": "Category",
      "valueType": "text"
    },
    {
      "key": "duration",
      "label": "Time Spent",
      "valueType": "ms",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "duration"
  ]
}

Elements with visible text labels do not have matching accessible names.

Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "node": {
        "lhId": "1-0-A",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,0,SECTION,2,DIV,2,SECTION,3,DIV,0,A",
        "type": "node",
        "snippet": "<a class=\"cta hero-store-cta\" href=\"https://apps.apple.com/app/apple-store/id6764543664?pt=128838980&amp;ct=websit…\" aria-label=\"Download on the App Store. Free, no ads.\" data-analytics-event=\"app_store_cta_clicked\" data-analytics-lang=\"en\" data-analytics-page=\"/\" data-analytics-location=\"hero\" data-analytics-campaign=\"website_home_v1_en\">",
        "selector": "div.shell > section.copy > div.actions > a.cta",
        "nodeLabel": "FREE, NO ADS\nDownload on the App Store",
        "explanation": "Fix any of the following:\n  Text inside the element is not included in the accessible name",
        "boundingRect": {
          "top": 545,
          "left": 29,
          "right": 281,
          "width": 252,
          "bottom": 599,
          "height": 54
        }
      }
    },
    {
      "node": {
        "lhId": "1-1-A",
        "path": "1,HTML,1,BODY,0,DIV,1,FOOTER,0,DIV,0,DIV,1,NAV,5,A",
        "type": "node",
        "snippet": "<a class=\"language-switch\" href=\"/zh/\" hreflang=\"zh-CN\" lang=\"zh-CN\" aria-label=\"切换到中文\">",
        "selector": "div.footer-cover-inner-v01 > div.footer-cover-main-v01 > nav.footer-links-v01 > a.language-switch",
        "nodeLabel": "简体中文",
        "explanation": "Fix any of the following:\n  Text inside the element is not included in the accessible name",
        "boundingRect": {
          "top": 5677,
          "left": 111,
          "right": 200,
          "width": 89,
          "bottom": 5707,
          "height": 30
        }
      }
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "Failing Elements",
      "valueType": "node",
      "subItemsHeading": {
        "key": "relatedNode",
        "valueType": "node"
      }
    }
  ],
  "debugData": {
    "tags": [
      "cat.semantics",
      "wcag21a",
      "wcag253",
      "EN-301-549",
      "EN-9.2.5.3",
      "RGAAv4",
      "RGAA-6.1.5",
      "experimental"
    ],
    "type": "debugdata",
    "impact": "serious"
  }
}

Avoid enormous network payloads

Total size was 3,604 KiB

Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "url": "https://slides.by331.net/assets/fourth-v09/screen4-door-light-bg-final-3840x2160-q90.webp",
      "totalBytes": 954379
    },
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-04.webp",
      "totalBytes": 303471
    },
    {
      "url": "https://slides.by331.net/assets/third-v69/W68-BG-C-01_selected_bottom_right_wall_rebuild_preview_2048.webp",
      "totalBytes": 259807
    },
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-03.webp",
      "totalBytes": 251574
    },
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-02.webp",
      "totalBytes": 234946
    },
    {
      "url": "https://slides.by331.net/assets/third-v712/frame_final_transparent.webp",
      "totalBytes": 224638
    },
    {
      "url": "https://slides.by331.net/assets/third-v755/people_9x6_full_bleed_inset14.webp",
      "totalBytes": 191971
    },
    {
      "url": "https://slides.by331.net/assets/hero-ultrawide/hero-ultrawide-foreground.webp",
      "totalBytes": 177517
    },
    {
      "url": "https://slides.by331.net/assets/fourth-v09/screen4-tyndall-overlay-square-v3.webp",
      "totalBytes": 133510
    },
    {
      "url": "https://slides.by331.net/assets/third-v737/album_9x6_clean_photo.webp",
      "totalBytes": 122746
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    }
  ],
  "sortedBy": [
    "totalBytes"
  ]
}

Use efficient cache lifetimes

Est savings of 16 KiB

A long cache lifetime can speed up repeat visits to your page. Learn more about caching.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js",
      "totalBytes": 10338,
      "wastedBytes": 4135.2,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
      "totalBytes": 10338,
      "wastedBytes": 4135.2,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js",
      "totalBytes": 10188,
      "wastedBytes": 4075.2000000000003,
      "cacheLifetimeMs": 86400000
    },
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
      "totalBytes": 10188,
      "wastedBytes": 4075.2000000000003,
      "cacheLifetimeMs": 86400000
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "Request",
      "valueType": "url"
    },
    {
      "key": "cacheLifetimeMs",
      "label": "Cache TTL",
      "valueType": "ms",
      "displayUnit": "duration"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes",
      "displayUnit": "kb",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "wastedBytes"
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 16420.8
  },
  "skipSumming": [
    "cacheLifetimeMs"
  ]
}

Improve image delivery

Est savings of 1,303 KiB

Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size

Elements & resources
{
  "type": "table",
  "items": [
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-04.webp",
      "node": {
        "lhId": "page-1-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,4,SECTION,0,DIV,0,DIV,2,IMG",
        "type": "node",
        "snippet": "<img class=\"curtain-download-slide-v01\" src=\"/assets/hero-webp/photo-04.webp\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "nodeLabel": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "boundingRect": {
          "top": 4154,
          "left": 221,
          "right": 380,
          "width": 159,
          "bottom": 4498,
          "height": 344
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Increasing the image compression factor could improve this image's download size.",
            "wastedBytes": 240497
          },
          {
            "reason": "This image file is larger than it needs to be (416x900) for its displayed dimensions (459x344). Use responsive images to reduce the image download size.",
            "wastedBytes": 175163
          }
        ]
      },
      "totalBytes": 302850,
      "wastedBytes": 276561
    },
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-03.webp",
      "node": {
        "lhId": "page-2-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,4,SECTION,0,DIV,0,DIV,1,IMG",
        "type": "node",
        "snippet": "<img class=\"curtain-download-slide-v01\" src=\"/assets/hero-webp/photo-03.webp\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "nodeLabel": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "boundingRect": {
          "top": 4154,
          "left": 221,
          "right": 380,
          "width": 159,
          "bottom": 4498,
          "height": 344
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Increasing the image compression factor could improve this image's download size.",
            "wastedBytes": 188659
          },
          {
            "reason": "This image file is larger than it needs to be (416x900) for its displayed dimensions (459x344). Use responsive images to reduce the image download size.",
            "wastedBytes": 145181
          }
        ]
      },
      "totalBytes": 251012,
      "wastedBytes": 224723
    },
    {
      "url": "https://slides.by331.net/assets/hero-webp/photo-02.webp",
      "node": {
        "lhId": "page-3-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,4,SECTION,0,DIV,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img class=\"curtain-download-slide-v01\" src=\"/assets/hero-webp/photo-02.webp\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "nodeLabel": "section#before-download > div.curtain-download-photo-v01 > div.curtain-download-device-v01 > img.curtain-download-slide-v01",
        "boundingRect": {
          "top": 4154,
          "left": 221,
          "right": 380,
          "width": 159,
          "bottom": 4498,
          "height": 344
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Increasing the image compression factor could improve this image's download size.",
            "wastedBytes": 184998
          },
          {
            "reason": "This image file is larger than it needs to be (370x800) for its displayed dimensions (516x344). Use responsive images to reduce the image download size.",
            "wastedBytes": 93748
          }
        ]
      },
      "totalBytes": 234300,
      "wastedBytes": 204725
    },
    {
      "url": "https://slides.by331.net/assets/fourth-v09/screen4-tyndall-overlay-square-v3.webp",
      "node": {
        "lhId": "page-4-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,2,SECTION,1,DIV,0,PICTURE,1,IMG",
        "type": "node",
        "snippet": "<img src=\"https://slides.by331.net/assets/fourth-v09/screen4-tyndall-overlay-square-…\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "section#shared-screen > div.shared-poster-motion-v09 > picture.shared-tyndall-overlay-v09 > img",
        "nodeLabel": "section#shared-screen > div.shared-poster-motion-v09 > picture.shared-tyndall-overlay-v09 > img",
        "boundingRect": {
          "top": 2478,
          "left": 15,
          "right": 397,
          "width": 382,
          "bottom": 3163,
          "height": 685
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (1606x2880) for its displayed dimensions (678x678). Use responsive images to reduce the image download size.",
            "wastedBytes": 119705
          }
        ]
      },
      "totalBytes": 132918,
      "wastedBytes": 119705
    },
    {
      "url": "https://slides.by331.net/assets/hero-fill-webp/tv-card-04.webp",
      "node": {
        "lhId": "page-5-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,SECTION,4,ARTICLE,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"assets/hero-fill-webp/tv-card-04.webp\" alt=\"\" fetchpriority=\"high\" decoding=\"async\">",
        "selector": "section.screen-layer > article.card > div.photo > img",
        "nodeLabel": "section.screen-layer > article.card > div.photo > img",
        "boundingRect": {
          "top": 241,
          "left": 201,
          "right": 265,
          "width": 64,
          "bottom": 359,
          "height": 118
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (700x1029) for its displayed dimensions (238x357). Use responsive images to reduce the image download size.",
            "wastedBytes": 77731
          }
        ]
      },
      "totalBytes": 88122,
      "wastedBytes": 77731
    },
    {
      "url": "https://slides.by331.net/assets/scenes-webp/living_tv_single_photo_v414.webp",
      "node": {
        "lhId": "page-5-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,0,SECTION,0,DIV,1,DIV,0,ARTICLE,0,IMG",
        "type": "node",
        "snippet": "<img loading=\"eager\" decoding=\"async\" src=\"/assets/scenes-webp/living_tv_single_photo_v414.webp\" alt=\"Living room TV playing Immich photos\">",
        "selector": "div.section-pad > div.scene-mosaic-v40 > article.scene-card > img",
        "nodeLabel": "Living room TV playing Immich photos",
        "boundingRect": {
          "top": 1094,
          "left": 40,
          "right": 372,
          "width": 332,
          "bottom": 1418,
          "height": 324
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (1024x999) for its displayed dimensions (332x332). Use responsive images to reduce the image download size.",
            "wastedBytes": 76703
          }
        ]
      },
      "totalBytes": 85962,
      "wastedBytes": 76703
    },
    {
      "url": "https://slides.by331.net/assets/scenes-webp/ipad_desk_single_photo_v414.webp",
      "node": {
        "lhId": "page-6-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,0,SECTION,0,DIV,1,DIV,2,ARTICLE,0,IMG",
        "type": "node",
        "snippet": "<img loading=\"lazy\" decoding=\"async\" src=\"/assets/scenes-webp/ipad_desk_single_photo_v414.webp\" alt=\"iPad playing photos on a shelf or desk\">",
        "selector": "div.section-pad > div.scene-mosaic-v40 > article.scene-card > img",
        "nodeLabel": "iPad playing photos on a shelf or desk",
        "boundingRect": {
          "top": 1430,
          "left": 212,
          "right": 372,
          "width": 160,
          "bottom": 1596,
          "height": 166
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (987x1024) for its displayed dimensions (166x166). Use responsive images to reduce the image download size.",
            "wastedBytes": 73393
          }
        ]
      },
      "totalBytes": 75450,
      "wastedBytes": 73393
    },
    {
      "url": "https://slides.by331.net/assets/scenes-webp/iphone_bedside_single_photo_v414.webp",
      "node": {
        "lhId": "page-7-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,0,SECTION,0,DIV,1,DIV,1,ARTICLE,0,IMG",
        "type": "node",
        "snippet": "<img loading=\"lazy\" decoding=\"async\" src=\"/assets/scenes-webp/iphone_bedside_single_photo_v414.webp\" alt=\"Spare iPhone playing photos on a nightstand\">",
        "selector": "div.section-pad > div.scene-mosaic-v40 > article.scene-card > img",
        "nodeLabel": "Spare iPhone playing photos on a nightstand",
        "boundingRect": {
          "top": 1430,
          "left": 40,
          "right": 200,
          "width": 160,
          "bottom": 1596,
          "height": 166
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (987x1024) for its displayed dimensions (166x166). Use responsive images to reduce the image download size.",
            "wastedBytes": 64385
          }
        ]
      },
      "totalBytes": 66190,
      "wastedBytes": 64385
    },
    {
      "url": "https://slides.by331.net/assets/hero-fill-webp/tv-card-03.webp",
      "node": {
        "lhId": "page-6-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,SECTION,3,ARTICLE,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"assets/hero-fill-webp/tv-card-04.webp\" alt=\"\" fetchpriority=\"high\" decoding=\"async\">",
        "selector": "section.screen-layer > article.card > div.photo > img",
        "nodeLabel": "section.screen-layer > article.card > div.photo > img",
        "boundingRect": {
          "top": 184,
          "left": 442,
          "right": 564,
          "width": 122,
          "bottom": 337,
          "height": 153
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (700x1029) for its displayed dimensions (238x357). Use responsive images to reduce the image download size.",
            "wastedBytes": 61194
          }
        ]
      },
      "totalBytes": 69374,
      "wastedBytes": 61194
    },
    {
      "url": "https://slides.by331.net/assets/hero-fill-webp/tv-card-01.webp",
      "node": {
        "lhId": "page-7-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,SECTION,5,ARTICLE,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"assets/hero-fill-webp/tv-card-01.webp\" alt=\"\" fetchpriority=\"high\" decoding=\"async\">",
        "selector": "section.screen-layer > article.card > div.photo > img",
        "nodeLabel": "section.screen-layer > article.card > div.photo > img",
        "boundingRect": {
          "top": 227,
          "left": 217,
          "right": 286,
          "width": 69,
          "bottom": 352,
          "height": 125
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (700x1035) for its displayed dimensions (184x276). Use responsive images to reduce the image download size.",
            "wastedBytes": 44713
          }
        ]
      },
      "totalBytes": 48084,
      "wastedBytes": 44713
    },
    {
      "url": "https://slides.by331.net/assets/brand/AppIcon-tvOS-transparent-360.png",
      "node": {
        "lhId": "page-8-IMG",
        "path": "1,HTML,1,BODY,0,DIV,1,FOOTER,0,DIV,0,DIV,0,A,0,IMG",
        "type": "node",
        "snippet": "<img src=\"/assets/brand/AppIcon-tvOS-transparent-360.png\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "div.footer-cover-inner-v01 > div.footer-cover-main-v01 > a.footer-brand-lockup-v01 > img",
        "nodeLabel": "div.footer-cover-inner-v01 > div.footer-cover-main-v01 > a.footer-brand-lockup-v01 > img",
        "boundingRect": {
          "top": 5587,
          "left": 18,
          "right": 86,
          "width": 68,
          "bottom": 5625,
          "height": 38
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "Using a modern image format (WebP, AVIF) or increasing the image compression could improve this image's download size.",
            "wastedBytes": 23618
          },
          {
            "reason": "This image file is larger than it needs to be (360x203) for its displayed dimensions (67x38). Use responsive images to reduce the image download size.",
            "wastedBytes": 34544
          }
        ]
      },
      "totalBytes": 35798,
      "wastedBytes": 35371
    },
    {
      "url": "https://slides.by331.net/assets/hero-fill-webp/tv-card-02.webp",
      "node": {
        "lhId": "page-8-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,SECTION,2,ARTICLE,0,DIV,0,IMG",
        "type": "node",
        "snippet": "<img src=\"assets/hero-fill-webp/tv-card-03.webp\" alt=\"\" fetchpriority=\"high\" decoding=\"async\">",
        "selector": "section.screen-layer > article.card > div.photo > img",
        "nodeLabel": "section.screen-layer > article.card > div.photo > img",
        "boundingRect": {
          "top": 150,
          "left": 341,
          "right": 481,
          "width": 140,
          "bottom": 337,
          "height": 187
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (700x896) for its displayed dimensions (236x354). Use responsive images to reduce the image download size.",
            "wastedBytes": 32439
          }
        ]
      },
      "totalBytes": 37426,
      "wastedBytes": 32439
    },
    {
      "url": "https://slides.by331.net/assets/hero-fill-webp/ipad-fill.webp",
      "node": {
        "lhId": "page-9-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,0,SECTION,0,IMG",
        "type": "node",
        "snippet": "<img src=\"assets/hero-fill-webp/ipad-fill.webp\" alt=\"\" fetchpriority=\"high\" decoding=\"async\">",
        "selector": "div.wrap > main.artboard > section.side-screen-fill > img",
        "nodeLabel": "div.wrap > main.artboard > section.side-screen-fill > img",
        "boundingRect": {
          "top": 134,
          "left": 5,
          "right": 68,
          "width": 63,
          "bottom": 232,
          "height": 98
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (564x848) for its displayed dimensions (141x212). Use responsive images to reduce the image download size.",
            "wastedBytes": 23811
          }
        ]
      },
      "totalBytes": 25398,
      "wastedBytes": 23811
    },
    {
      "url": "https://slides.by331.net/assets/fourth-v09/screen4-door-square-mobile.webp",
      "node": {
        "lhId": "page-9-IMG",
        "path": "1,HTML,1,BODY,0,DIV,0,MAIN,1,DIV,2,SECTION,0,PICTURE,2,IMG",
        "type": "node",
        "snippet": "<img src=\"https://slides.by331.net/assets/fourth-v09/screen4-door-square-mobile.webp\" alt=\"\" decoding=\"async\" loading=\"lazy\">",
        "selector": "div.page > section#shared-screen > picture.shared-poster-bg-v09 > img",
        "nodeLabel": "div.page > section#shared-screen > picture.shared-poster-bg-v09 > img",
        "boundingRect": {
          "top": 2481,
          "left": 17,
          "right": 395,
          "width": 378,
          "bottom": 3159,
          "height": 678
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "reason": "This image file is larger than it needs to be (669x1200) for its displayed dimensions (678x678). Use responsive images to reduce the image download size.",
            "wastedBytes": 18936
          }
        ]
      },
      "totalBytes": 44302,
      "wastedBytes": 18936
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "",
      "valueType": "node"
    },
    {
      "key": "url",
      "label": "URL",
      "valueType": "url",
      "subItemsHeading": {
        "key": "reason",
        "valueType": "text"
      }
    },
    {
      "key": "totalBytes",
      "label": "Resource Size",
      "valueType": "bytes"
    },
    {
      "key": "wastedBytes",
      "label": "Est Savings",
      "valueType": "bytes",
      "subItemsHeading": {
        "key": "wastedBytes",
        "valueType": "bytes"
      }
    }
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 1334390
  }
}

Legacy JavaScript

Est savings of 21 KiB

Polyfills and transforms enable older browsers to use new JavaScript features. However, many aren't necessary for modern browsers. Consider modifying your JavaScript build process to not transpile Baseline features, unless you know you must support older browsers. Learn why most sites can deploy ES6+ code without transpiling

Elements & resources
{
  "type": "table",
  "items": [
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "signal": "Array.prototype.at",
            "location": {
              "url": "https://static.cloudflareinsights.com/beacon.min.js",
              "line": 0,
              "type": "source-location",
              "column": 19367,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Array.prototype.findLast",
            "location": {
              "url": "https://static.cloudflareinsights.com/beacon.min.js",
              "line": 0,
              "type": "source-location",
              "column": 19137,
              "urlProvider": "network"
            }
          }
        ]
      },
      "wastedBytes": 10682
    },
    {
      "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "signal": "Array.prototype.at",
            "location": {
              "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
              "line": 0,
              "type": "source-location",
              "column": 19367,
              "urlProvider": "network"
            }
          },
          {
            "signal": "Array.prototype.findLast",
            "location": {
              "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
              "line": 0,
              "type": "source-location",
              "column": 19137,
              "urlProvider": "network"
            }
          }
        ]
      },
      "wastedBytes": 10682
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url",
      "subItemsHeading": {
        "key": "location",
        "valueType": "source-location"
      }
    },
    {
      "key": null,
      "label": "",
      "valueType": "code",
      "subItemsHeading": {
        "key": "signal"
      }
    },
    {
      "key": "wastedBytes",
      "label": "Wasted bytes",
      "valueType": "bytes"
    }
  ],
  "debugData": {
    "type": "debugdata",
    "wastedBytes": 21364
  }
}

Network dependency tree

Avoid chaining critical requests by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.

Elements & resources
{
  "type": "list",
  "items": [
    {
      "type": "list-section",
      "value": {
        "type": "network-tree",
        "chains": {
          "CF7EA30CFE222CE15CCDA82863E2596C": {
            "url": "https://slides.by331.net/",
            "children": {
              "598887.13": {
                "url": "https://slides.by331.net/assets/fonts/signature/Courgette-Regular.ttf",
                "children": {},
                "transferSize": 49299,
                "navStartToEndTime": 2733
              },
              "598887.14": {
                "url": "https://slides.by331.net/site.webmanifest",
                "children": {},
                "transferSize": 789,
                "navStartToEndTime": 2697
              },
              "598887.38": {
                "url": "https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495",
                "children": {},
                "isLongest": true,
                "transferSize": 10188,
                "navStartToEndTime": 4336
              }
            },
            "isLongest": true,
            "transferSize": 63800,
            "navStartToEndTime": 1142
          }
        },
        "longestChain": {
          "duration": 4336
        }
      }
    },
    {
      "type": "list-section",
      "title": "Preconnected origins",
      "value": {
        "type": "text",
        "value": "no origins were preconnected"
      },
      "description": "[preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints help the browser establish a connection earlier in the page load, saving time when the first request for that origin is made. The following are the origins that the page preconnected to."
    },
    {
      "type": "list-section",
      "title": "Preconnect candidates",
      "value": {
        "type": "text",
        "value": "No additional origins are good candidates for preconnecting"
      },
      "description": "Add [preconnect](https://developer.chrome.com/docs/lighthouse/performance/uses-rel-preconnect/) hints to your most important origins, but try to use no more than 4."
    }
  ]
}
Environment & raw metrics
{
  "finalUrl": "https://slides.by331.net/",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.0.0 Safari/537.36",
  "formFactor": "mobile",
  "throttlingMethod": "simulate",
  "throttling": {
    "rttMs": 150,
    "throughputKbps": 1638.4,
    "requestLatencyMs": 562.5,
    "uploadThroughputKbps": 675,
    "cpuSlowdownMultiplier": 4,
    "downloadThroughputKbps": 1474.5600000000002
  },
  "metrics": [
    {
      "id": "largest-contentful-paint",
      "unit": "millisecond",
      "value": 1467.864
    },
    {
      "id": "cumulative-layout-shift",
      "unit": "unitless",
      "value": 0.013877381264068008
    },
    {
      "id": "total-blocking-time",
      "unit": "millisecond",
      "value": 624.5
    },
    {
      "id": "first-contentful-paint",
      "unit": "millisecond",
      "value": 1399.864
    },
    {
      "id": "speed-index",
      "unit": "millisecond",
      "value": 9902.185538248179
    }
  ]
}

01 / WHAT WORKS

What makes it work

Grounded lifestyle staging

The warm ambient lighting, credenza placement, and television display immediately signal the product value as an ambient home photo frame rather than another utilitarian cloud utility.

Proactive anti-regret gating

The checklist before download explicitly confirms users need an active Immich instance and API key, preventing mistaken downloads from people looking for cloud storage or photo backups.

02 / NEXT STEPS

Where to go next

  1. 01

    Stack mobile hero artwork below copy

    At 390px width, the frosted glass text card sits directly over the high-contrast TV bezel and bright slideshow photo, making the headline and body text strenuous to read.

    Update the mobile layout below 768px so the hero copy container appears first with solid or deeply tinted backing, followed by the TV and device illustration below it, instead of overlapping.

  2. 02

    Anchor platform badges beside the mobile download CTA

    On desktop, the supported platform pill sits at the bottom right of the hero. On mobile, that indicator gets pushed out of view, leaving users uncertain if Apple TV is supported before downloading.

    Attach a compact device indicator pill directly beneath the App Store CTA button inside the primary hero card across all viewports.

03 / DESIGN LANGUAGE

A design system you can reuse

Colors

Background

#111111

Text

#ffffff

Typography

Display font
Inter
Body font
Inter
Heading / body
58px / 16px

Spacing & shape

Section gap
0px
Component inset
—
Card radius
—
Button radius
999px

CLEARER WORDS

Copy Revision Diff

Now

Apple TV in the living room, an iPad on a shelf, or a spare iPhone on a nightstand.Connect once, then let your Immich photos play where you will actually see them.

SUGGESTED COPY

Apple TV in the living room, an iPad on a shelf, or a spare iPhone on a nightstand. Connect once, then let your Immich photos play where you will actually see them.

Insert the missing space after the period between nightstand and Connect.

04 / EVIDENCE

The detail behind the report

Explore each observation, recommendation and captured record.

Taste1 observations

Severe contrast clash on mobile hero overlay

High

The white headline crosses directly over the solid black edge of the TV screen and bright landscape photo, breaking legibility.

Remove absolute positioning or card overlay on mobile viewports: render text section first, then the TV graphic below.

FOR YOUR SELF-HOSTED IMMICH LIBRARY. Bring your Immich photos back into view
Conversion5 observations

No human or proof on the page

Medium

A stranger landing on an AI-looking site with no maker, no customer, and no contact will not give you an email.

Add a real name, a real face, a real contact method, or one real customer line.

no about, no first-person, no quote

No analytics on the live page

Medium

If you cannot see who bounced, you cannot tell if the next fix worked. Shipping without a counter is flying blind.

Put Plausible, PostHog, or GA4 on the public pages. One snippet is enough.

no gtag / plausible / posthog / umami

No way to reach a human

Medium

A stranger who wants to buy, ask, or complain has nowhere to go. That is a conversion leak and a trust leak.

Put a mailto, a form that works, or a real social handle in the footer. One is enough.

no mailto / telegram / x / github / email

Images ship without alt text

Medium

Missing alt is a screen-reader dead end and a ranking leak. Decorative images can be alt="". Content images cannot be blank.

Write a short alt for product and photo images. Use empty alt only on pure decoration.

9 images without alt

Tab title and H1 disagree

If the tab, the share card, and the hero name different things, the visitor cannot form one memory of the product.

Make title, og:title, and H1 share the same noun.

title="immichSlides | Immich Slides for Apple TV, iPad & iPhone" h1="Bring yourImmich photosback into view"
Launch4 observations

No HSTS header

Medium

Without Strict-Transport-Security, a first visit can still be downgraded to http. Browsers will not pin HTTPS.

Set Strict-Transport-Security: max-age=31536000; includeSubDomains at the edge.

strict-transport-security missing

The HTML payload is huge

Medium

A first document over 350 KB is usually inlined junk: CSS dumps, JSON, or a whole app. Phones pay for that before they see a headline.

Move CSS and data out of the document. Keep the first HTML under 200 KB.

743 KB HTML

No Content-Security-Policy

A CSP is the standard way to limit script sources. Vibe-coded pages often load anything, including injected scripts.

Start with a report-only CSP, then default-src 'self' and an explicit script-src.

content-security-policy missing

Typographical punctuation glue in feature paragraph

The period immediately touches the following word without whitespace, creating an unpolished impression.

Check the copy string in source templates and add an ASCII space after 'nightstand.'.

or a spare iPhone on a nightstand.Connect once, then let your Immich photos play
Link preview

05 / MAKE IT HAPPEN

Give your AI a clear next step

Use the improvement prompt for this page, or the design prompt to borrow its visual language. “Recreate” includes references and implementation steps. Paste either into your coding assistant.

Preview full instructions
Refactor the hero section in the marketing page to eliminate mobile visual collisions while preserving desktop visual balance.

1. Mobile Layout Refactor:
- In viewports narrower than 768px (tested at 390px), stop absolute overlapping of the glass hero card on top of the TV illustration.
- Convert the hero section into a clean vertical column: display the frosted or solid text container first (with eyebrow 'FOR YOUR SELF-HOSTED IMMICH LIBRARY.', H1 'Bring your Immich photos back into view', description, App Store CTA button, and 'Supports: iPhone · iPad · Apple TV' tag), followed directly below by the TV and framed photos graphic.
- Ensure the white text has a minimum contrast ratio of 4.5:1 against the background.

2. Copy correction:
- In the 'Turn spare screens into photo frames for your home' section, correct 'nightstand.Connect once' to 'nightstand. Connect once'.

3. Preserve all extracted CSS tokens:
- Keep background colors #111111, --bg #f4f1e8, --paper #fffdf7, button radius 999px, container radius 34px, and Inter font family.
- Test visually at 1440x900 and 390x844 viewports to verify neither layout regresses.