https://replit.com

Page structure & technical metrics

Words

924

Action candidates

39

Images

25

HTML

661 KB

Copy

Title chars
35
Meta chars
102
H1
2
H2
8

Action

Primary

Create account

Forms
0/ 4 fields
On-site links
87
Off-site links
7

Security & metadata

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

Page

Next.js / Tailwind

Scripts
160 ext / 6 inline
Alt
13 missing
Lang
en
Third-party hosts
2

Lighthouse

Simulated mobile · Performance

32 / 100

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

View details

Simulated mobile · Lab data, not field data
2026-09-05T03:58:28.430Z · Lighthouse 13.4.1

Performance32/ 100
Accessibility93/ 100
Best practices77/ 100
SEO100/ 100
LCP · Largest content27,446 ms
CLS · Layout shift0.000
TBT · Blocking time2,971 ms
FCP · First content3,152 ms
SI · Speed index9,490 ms

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

Browser errors were logged to the console

Errors logged to the console indicate unresolved problems. They can come from network request failures and other browser concerns. Learn more about this errors in console diagnostic audit

Elements & resources
{
  "type": "table",
  "items": [
    {
      "source": "other",
      "description": "Not signed in with the identity provider.",
      "sourceLocation": {
        "url": "https://replit.com/",
        "line": 0,
        "type": "source-location",
        "column": 0,
        "urlProvider": "network"
      }
    }
  ],
  "headings": [
    {
      "key": "sourceLocation",
      "label": "Source",
      "valueType": "source-location"
    },
    {
      "key": "description",
      "label": "Description",
      "valueType": "code"
    }
  ]
}

Reduce initial server response time

Root document took 1,050 ms

Keep the server response time for the main document short because all other requests depend on it. Learn more about the Time to First Byte metric.

Elements & resources
{
  "type": "opportunity",
  "items": [
    {
      "url": "https://replit.com/",
      "responseTime": 1050
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "responseTime",
      "label": "Time Spent",
      "valueType": "timespanMs"
    }
  ],
  "overallSavingsMs": 950
}

Uses deprecated APIs

3 warnings found

Deprecated APIs will eventually be removed from the browser. Learn more about deprecated APIs.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "value": "The Shared Storage API is deprecated and will be removed in a future release.",
      "source": {
        "url": "https://replit.com/cdn-cgi/challenge-platform/scripts/jsd/main.js",
        "line": 0,
        "type": "source-location",
        "column": 11542,
        "urlProvider": "network"
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "url": "https://chromestatus.com/feature/5076349064708096",
            "text": "Check the feature status page for more details.",
            "type": "link"
          }
        ]
      }
    },
    {
      "value": "StorageType.persistent is deprecated. Please use standardized navigator.storage instead.",
      "source": {
        "url": "https://replit.com/cdn-cgi/challenge-platform/scripts/jsd/main.js",
        "line": 0,
        "type": "source-location",
        "column": 11542,
        "urlProvider": "network"
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "url": "https://chromestatus.com/feature/5176235376246784",
            "text": "Check the feature status page for more details.",
            "type": "link"
          },
          {
            "url": "https://chromiumdash.appspot.com/schedule",
            "text": "This change will go into effect with milestone 106.",
            "type": "link"
          }
        ]
      }
    },
    {
      "value": "The Protected Audience API is deprecated and will be removed in a future release.",
      "source": {
        "url": "https://replit.com/cdn-cgi/challenge-platform/scripts/jsd/main.js",
        "line": 0,
        "type": "source-location",
        "column": 11542,
        "urlProvider": "network"
      }
    }
  ],
  "headings": [
    {
      "key": "value",
      "label": "Deprecation / Warning",
      "valueType": "text"
    },
    {
      "key": "source",
      "label": "Source",
      "valueType": "source-location"
    }
  ]
}

Minimize main-thread work

8.6 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": "scriptEvaluation",
      "duration": 6043.055999999556,
      "groupLabel": "Script Evaluation"
    },
    {
      "group": "other",
      "duration": 733.0560000000045,
      "groupLabel": "Other"
    },
    {
      "group": "styleLayout",
      "duration": 730.7639999999985,
      "groupLabel": "Style & Layout"
    },
    {
      "group": "scriptParseCompile",
      "duration": 721.9480000000011,
      "groupLabel": "Script Parsing & Compilation"
    },
    {
      "group": "paintCompositeRender",
      "duration": 205.24799999999794,
      "groupLabel": "Rendering"
    },
    {
      "group": "parseHTML",
      "duration": 91.152,
      "groupLabel": "Parse HTML & CSS"
    },
    {
      "group": "garbageCollection",
      "duration": 35.204000000000015,
      "groupLabel": "Garbage Collection"
    }
  ],
  "headings": [
    {
      "key": "groupLabel",
      "label": "Category",
      "valueType": "text"
    },
    {
      "key": "duration",
      "label": "Time Spent",
      "valueType": "ms",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "duration"
  ]
}

Reduce JavaScript execution time

6.0 s

Consider reducing the time spent parsing, compiling, and executing JS. You may find delivering smaller JS payloads helps with this. Learn how to reduce Javascript execution time.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "url": "https://replit.com/cdn-cgi/challenge-platform/scripts/jsd/main.js",
      "total": 3879.7599999999625,
      "scripting": 3782.8199999999624,
      "scriptParseCompile": 1.52
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/001weln5n2jwt.js",
      "total": 1208.5440000000365,
      "scripting": 940.6920000000365,
      "scriptParseCompile": 7.772
    },
    {
      "url": "https://replit.com/",
      "total": 969.6639999999982,
      "scripting": 21.00399999999998,
      "scriptParseCompile": 3.1240000000000006
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/turbopack-40j2iz8b4g3hi.js",
      "total": 517.5040000000079,
      "scripting": 513.1120000000079,
      "scriptParseCompile": 0.9
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/1vtpn4b_ytnp9.js",
      "total": 459.0200000000036,
      "scripting": 361.7080000000036,
      "scriptParseCompile": 97.076
    },
    {
      "url": "Unattributable",
      "total": 363.7439999999977,
      "scripting": 32.703999999999986,
      "scriptParseCompile": 0
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/turbopack-3dtxrg33e4tpn.js",
      "total": 173.56799999999956,
      "scripting": 166.17599999999956,
      "scriptParseCompile": 0.884
    },
    {
      "url": "https://replit.com/__/auth/iframe.js",
      "total": 77.47200000000004,
      "scripting": 50.66000000000003,
      "scriptParseCompile": 21.596
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/2swczkvxb182l.js",
      "total": 73.59199999999994,
      "scripting": 17.66799999999997,
      "scriptParseCompile": 4.34
    }
  ],
  "summary": {
    "wastedMs": 6023.75600000001
  },
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "total",
      "label": "Total CPU Time",
      "valueType": "ms",
      "granularity": 1
    },
    {
      "key": "scripting",
      "label": "Script Evaluation",
      "valueType": "ms",
      "granularity": 1
    },
    {
      "key": "scriptParseCompile",
      "label": "Script Parse",
      "valueType": "ms",
      "granularity": 1
    }
  ],
  "sortedBy": [
    "total"
  ]
}

Background and foreground colors do not have a sufficient contrast ratio.

Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "node": {
        "lhId": "1-0-BUTTON",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER,0,NAV,0,UL,1,DIV,0,DIV,1,BUTTON",
        "type": "node",
        "snippet": "<button type=\"button\" data-cy=\"mobile-header-signup-button\" class=\"MarketingHeader-module__S9ztCG__signupButton MarketingHeader-module__S9ztC…\">",
        "selector": "ul.MarketingHeader-module__S9ztCG__content > div.flex > div.flex > button.MarketingHeader-module__S9ztCG__signupButton",
        "nodeLabel": "Create account",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.3 (foreground color: #ff3c00, background color: #faf6f1, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 19,
          "left": 237,
          "right": 348,
          "width": 111,
          "bottom": 49,
          "height": 30
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-1-HEADER",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER",
              "type": "node",
              "snippet": "<header role=\"banner\" class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\">",
              "selector": "body > div#__next > div.flex > header.flex",
              "nodeLabel": "Log in\nCreate account\nProducts\nCREATE\nDesign\nApps & Websites\nSlides\nPLATFORM\nAg…",
              "boundingRect": {
                "top": 0,
                "left": 0,
                "right": 412,
                "width": 412,
                "bottom": 67,
                "height": 67
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-2-P",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,0,DIV,1,P",
        "type": "node",
        "snippet": "<p class=\"HeroBentoGrid-module__wCfISG__heroSubtitle\">",
        "selector": "div.HeroBentoGrid-module__wCfISG__scrollContainer > div.flex > div.flex > p.HeroBentoGrid-module__wCfISG__heroSubtitle",
        "nodeLabel": "Maximize Making on Replit",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 2.81 (foreground color: #949494, background color: #faf6f1, font size: 18.0pt (24px), font weight: normal). Expected contrast ratio of 3:1",
        "boundingRect": {
          "top": 947,
          "left": 75,
          "right": 337,
          "width": 262,
          "bottom": 967,
          "height": 20
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-3-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\">",
              "selector": "body > div#__next > div.flex",
              "nodeLabel": "Log in\nCreate account\nProducts\nCREATE\nDesign\nApps & Websites\nSlides\nPLATFORM\nAg…",
              "boundingRect": {
                "top": 0,
                "left": 0,
                "right": 412,
                "width": 412,
                "bottom": 8389,
                "height": 8389
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-4-DIV",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,1,DIV,1,DIV",
        "type": "node",
        "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:16px\">",
        "selector": "div.flex > div.flex > div.flex > div.flex",
        "nodeLabel": "Power",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 1.88 (foreground color: #ffffff, background color: #f9aa8b, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 1072,
          "left": 213,
          "right": 372,
          "width": 159,
          "bottom": 1108,
          "height": 36
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-5-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:24px\">",
              "selector": "div.flex > div.flex > div.flex > div.flex",
              "nodeLabel": "FREE MODE\n\nCreate without token costs\n\nBrainstorm and create at no cost.\n\nFree\n…",
              "boundingRect": {
                "top": 991,
                "left": 16,
                "right": 396,
                "width": 380,
                "bottom": 1189,
                "height": 198
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-6-DIV",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV,1,DIV,2,DIV",
        "type": "node",
        "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:16px\">",
        "selector": "div.flex > div.flex > div.flex > div.flex",
        "nodeLabel": "Max",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 1.88 (foreground color: #ffffff, background color: #f9aa8b, font size: 15.0pt (20px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 1129,
          "left": 213,
          "right": 372,
          "width": 159,
          "bottom": 1165,
          "height": 36
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-5-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:24px\">",
              "selector": "div.flex > div.flex > div.flex > div.flex",
              "nodeLabel": "FREE MODE\n\nCreate without token costs\n\nBrainstorm and create at no cost.\n\nFree\n…",
              "boundingRect": {
                "top": 991,
                "left": 16,
                "right": 396,
                "width": 380,
                "bottom": 1189,
                "height": 198
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-7-A",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,3,DIV,0,DIV,2,DIV,0,A",
        "type": "node",
        "snippet": "<a href=\"/signup\" data-analytics-id=\"try_free_mode_cta\" class=\"HeroBentoGrid-module__wCfISG__ctaButton\">",
        "selector": "div.HeroBentoGrid-module__wCfISG__scrollContainer > div.flex > div.flex > a.HeroBentoGrid-module__wCfISG__ctaButton",
        "nodeLabel": "Try Free Mode",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.3 (foreground color: #ff3c00, background color: #faf6f1, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 1867,
          "left": 37,
          "right": 197,
          "width": 160,
          "bottom": 1910,
          "height": 43
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-3-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\">",
              "selector": "body > div#__next > div.flex",
              "nodeLabel": "Log in\nCreate account\nProducts\nCREATE\nDesign\nApps & Websites\nSlides\nPLATFORM\nAg…",
              "boundingRect": {
                "top": 0,
                "left": 0,
                "right": 412,
                "width": 412,
                "bottom": 8389,
                "height": 8389
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-8-DIV",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,5,DIV,0,DIV,0,DIV,2,DIV,0,DIV,0,DIV,0,DIV,0,DIV,0,DIV,1,DIV,0,DIV,2,DIV",
        "type": "node",
        "snippet": "<div class=\"PlatformCards-module__Z0omxa__agentPublishBtn\">",
        "selector": "div.flex > div.PlatformCards-module__Z0omxa__cardIllustration > div.PlatformCards-module__Z0omxa__agentIllustration > div.PlatformCards-module__Z0omxa__agentPublishBtn",
        "nodeLabel": "Publish",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.56 (foreground color: #ffffff, background color: #ff3c00, font size: 7.8pt (10.4px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 3406,
          "left": 262,
          "right": 351,
          "width": 89,
          "bottom": 3444,
          "height": 38
        }
      }
    },
    {
      "node": {
        "lhId": "1-9-SPAN",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,6,DIV,0,DIV,0,DIV,1,DIV,0,DIV,0,DIV,0,SPAN",
        "type": "node",
        "snippet": "<span class=\"TestimonialsSectionMobile-module__oE5GEW__headerLabel\">",
        "selector": "div.TestimonialsSection-module__Qc-Laq__mobileLayout > div.TestimonialsSectionMobile-module__oE5GEW__root > div.flex > span.TestimonialsSectionMobile-module__oE5GEW__headerLabel",
        "nodeLabel": "ENDORSED BY INNOVATORS",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.3 (foreground color: #ff3c00, background color: #faf6f1, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 3872,
          "left": 112,
          "right": 300,
          "width": 189,
          "bottom": 3887,
          "height": 16
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-3-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\">",
              "selector": "body > div#__next > div.flex",
              "nodeLabel": "Log in\nCreate account\nProducts\nCREATE\nDesign\nApps & Websites\nSlides\nPLATFORM\nAg…",
              "boundingRect": {
                "top": 0,
                "left": 0,
                "right": 412,
                "width": 412,
                "bottom": 8389,
                "height": 8389
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-10-SPAN",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,7,DIV,0,DIV,0,DIV,1,FIELDSET,2,LABEL,1,DIV,1,SPAN",
        "type": "node",
        "snippet": "<span class=\"PricingShowcase-module__4e3f_q__periodToggleSave\">",
        "selector": "fieldset.flex > label.ButtonGroup2-module__XpaxrW__buttonGroupItem > div.flex > span.PricingShowcase-module__4e3f_q__periodToggleSave",
        "nodeLabel": "Save 10%",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.46 (foreground color: #ff3c00, background color: #fcfcfb, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 4761,
          "left": 181,
          "right": 234,
          "width": 54,
          "bottom": 4777,
          "height": 16
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-11-LABEL",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,7,DIV,0,DIV,0,DIV,1,FIELDSET,2,LABEL",
              "type": "node",
              "snippet": "<label data-ruic=\"ButtonGroup2Item\" class=\"ButtonGroup2-module__XpaxrW__buttonGroupItem relative flex flex-row items-…\" data-colorway=\"control\">",
              "selector": "div.flex > div.flex > fieldset.flex > label.ButtonGroup2-module__XpaxrW__buttonGroupItem",
              "nodeLabel": "Yearly\nSave 10%",
              "boundingRect": {
                "top": 4753,
                "left": 121,
                "right": 251,
                "width": 131,
                "bottom": 4785,
                "height": 32
              }
            }
          }
        ]
      }
    },
    {
      "node": {
        "lhId": "1-12-A",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,9,DIV,0,DIV,1,A",
        "type": "node",
        "snippet": "<a href=\"https://replit.com/signup\" class=\"FooterCta-module__EpEToa__button FooterCta-module__EpEToa__buttonCompact\">",
        "selector": "div.flex > div.flex > div.flex > a.FooterCta-module__EpEToa__button",
        "nodeLabel": "Get started for free",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.56 (foreground color: #ffffff, background color: #ff3c00, font size: 11.3pt (15px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 7217,
          "left": 112,
          "right": 300,
          "width": 188,
          "bottom": 7269,
          "height": 52
        }
      }
    },
    {
      "node": {
        "lhId": "1-13-SPAN",
        "path": "1,HTML,1,BODY,1,DIV,10,DIV,0,DIV,1,DIV,0,BUTTON,0,SPAN,0,SPAN",
        "type": "node",
        "snippet": "<span class=\"box-border min-h-0 min-w-0 border-0 border-solid view-outline-none flex-co…\">",
        "selector": "div.flex > button#react-aria478145690-:ra: > span.flex > span.box-border",
        "nodeLabel": "Accept",
        "explanation": "Fix any of the following:\n  Element has insufficient color contrast of 3.4 (foreground color: #f7fbff, background color: #0f87ff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1",
        "boundingRect": {
          "top": 763,
          "left": 267,
          "right": 306,
          "width": 38,
          "bottom": 781,
          "height": 18
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-14-BUTTON",
              "path": "1,HTML,1,BODY,1,DIV,10,DIV,0,DIV,1,DIV,0,BUTTON",
              "type": "node",
              "snippet": "<button data-ruic=\"Button\" data-analytics-instrumented=\"\" data-analytics-id=\"cookie_consent_accept_button\" type=\"button\" tabindex=\"0\" data-react-aria-pressable=\"true\" class=\"rounded-md useRuiDiagnostics-module__sFi-rG__interactive custom-focus-not-…\" data-rac=\"\" id=\"react-aria478145690-:ra:\">",
              "selector": "div.flex > div.flex > div.flex > button#react-aria478145690-:ra:",
              "nodeLabel": "Accept",
              "boundingRect": {
                "top": 758,
                "left": 258,
                "right": 315,
                "width": 56,
                "bottom": 786,
                "height": 28
              }
            }
          }
        ]
      }
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "Failing Elements",
      "valueType": "node",
      "subItemsHeading": {
        "key": "relatedNode",
        "valueType": "node"
      }
    }
  ],
  "debugData": {
    "tags": [
      "cat.color",
      "wcag2aa",
      "wcag143",
      "TTv5",
      "TT13.c",
      "EN-301-549",
      "EN-9.1.4.3",
      "ACT",
      "RGAAv4",
      "RGAA-3.2.1"
    ],
    "type": "debugdata",
    "impact": "serious"
  }
}

Lists do not contain only `<li>` elements and script supporting elements (`<script>` and `<template>`).

Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. Learn more about proper list structure.

Elements & resources
{
  "type": "table",
  "items": [
    {
      "node": {
        "lhId": "1-15-UL",
        "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER,0,NAV,0,UL",
        "type": "node",
        "snippet": "<ul class=\"MarketingHeader-module__S9ztCG__content\">",
        "selector": "div.flex > header.flex > nav.flex > ul.MarketingHeader-module__S9ztCG__content",
        "nodeLabel": "Log in\nCreate account",
        "explanation": "Fix all of the following:\n  List element has direct children that are not allowed: div",
        "boundingRect": {
          "top": 0,
          "left": 24,
          "right": 388,
          "width": 364,
          "bottom": 67,
          "height": 67
        }
      },
      "subItems": {
        "type": "subitems",
        "items": [
          {
            "relatedNode": {
              "lhId": "1-16-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER,0,NAV,0,UL,0,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:24px\">",
              "selector": "header.flex > nav.flex > ul.MarketingHeader-module__S9ztCG__content > div.flex",
              "nodeLabel": "Replit",
              "boundingRect": {
                "top": 16,
                "left": 24,
                "right": 146,
                "width": 122,
                "bottom": 51,
                "height": 35
              }
            }
          },
          {
            "relatedNode": {
              "lhId": "1-17-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER,0,NAV,0,UL,1,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:8px\">",
              "selector": "header.flex > nav.flex > ul.MarketingHeader-module__S9ztCG__content > div.flex",
              "nodeLabel": "Log in\nCreate account",
              "boundingRect": {
                "top": 19,
                "left": 178,
                "right": 348,
                "width": 170,
                "bottom": 49,
                "height": 30
              }
            }
          },
          {
            "relatedNode": {
              "lhId": "1-18-DIV",
              "path": "1,HTML,1,BODY,1,DIV,6,DIV,0,HEADER,0,NAV,0,UL,2,DIV",
              "type": "node",
              "snippet": "<div class=\"flex box-border min-h-0 min-w-0 border-0 border-solid view-outline-none fl…\" style=\"--useView--gap:12px\">",
              "selector": "header.flex > nav.flex > ul.MarketingHeader-module__S9ztCG__content > div.flex",
              "nodeLabel": "Toggle mobile menu",
              "boundingRect": {
                "top": 18,
                "left": 356,
                "right": 388,
                "width": 32,
                "bottom": 50,
                "height": 32
              }
            }
          }
        ]
      }
    }
  ],
  "headings": [
    {
      "key": "node",
      "label": "Failing Elements",
      "valueType": "node",
      "subItemsHeading": {
        "key": "relatedNode",
        "valueType": "node"
      }
    }
  ],
  "debugData": {
    "tags": [
      "cat.structure",
      "wcag2a",
      "wcag131",
      "EN-301-549",
      "EN-9.1.3.1",
      "RGAAv4",
      "RGAA-9.3.1"
    ],
    "type": "debugdata",
    "impact": "serious"
  }
}

Avoid enormous network payloads

Total size was 5,188 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://cdn.replit.com/product-cms/template-library/manifest.json",
      "totalBytes": 553616
    },
    {
      "url": "https://replit.com/public/fonts/ReplitDiatypeVariable.woff2",
      "totalBytes": 331454
    },
    {
      "url": "https://replit.com/public/fonts/ABCDiatypePlusVariable-Regular.woff2",
      "totalBytes": 231087
    },
    {
      "url": "https://replit.com/public/fonts/ReplitDiatypeMonoVariable.woff2",
      "totalBytes": 173566
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/1vtpn4b_ytnp9.js",
      "totalBytes": 159601
    },
    {
      "url": "https://elements.stytch.com/telemetry.js",
      "totalBytes": 150270
    },
    {
      "url": "https://cdn.replit.com/product-cms/template-library/template.art-poster-7204/frame-art-poster-7204-preview.jpg",
      "totalBytes": 111464
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/31k2ahjb1ae7x.js",
      "totalBytes": 103910
    },
    {
      "url": "https://accounts.google.com/gsi/client",
      "totalBytes": 101495
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/2bc4_5ulysqe2.js",
      "totalBytes": 98076
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    }
  ],
  "sortedBy": [
    "totalBytes"
  ]
}

Reduce unused CSS

Est savings of 14 KiB

Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. Learn how to reduce unused CSS.

Elements & resources
{
  "type": "opportunity",
  "items": [
    {
      "url": "https://cdn.replit.com/_next/static/chunks/1k5wmja5w4rsd.css",
      "totalBytes": 20780,
      "wastedBytes": 14411,
      "wastedPercent": 69.35147245482966
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url"
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes"
    },
    {
      "key": "wastedBytes",
      "label": "Est Savings",
      "valueType": "bytes"
    }
  ],
  "sortedBy": [
    "wastedBytes"
  ],
  "debugData": {
    "type": "debugdata",
    "metricSavings": {
      "FCP": 150,
      "LCP": 0
    }
  },
  "overallSavingsMs": 0,
  "overallSavingsBytes": 14411
}

Reduce unused JavaScript

Est savings of 329 KiB

Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. Learn how to reduce unused JavaScript.

Elements & resources
{
  "type": "opportunity",
  "items": [
    {
      "url": "https://elements.stytch.com/telemetry.js",
      "totalBytes": 117502,
      "wastedBytes": 117347,
      "wastedPercent": 99.86816210852916
    },
    {
      "url": "https://accounts.google.com/gsi/client",
      "totalBytes": 89212,
      "wastedBytes": 66725,
      "wastedPercent": 74.79353364962222
    },
    {
      "url": "https://replit.com/__/auth/iframe.js",
      "totalBytes": 94734,
      "wastedBytes": 58207,
      "wastedPercent": 61.44265068343565
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/2bc4_5ulysqe2.js",
      "totalBytes": 64555,
      "wastedBytes": 43059,
      "wastedPercent": 66.70099240364785
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/1w2hwoeoatxuq.js",
      "totalBytes": 28734,
      "wastedBytes": 28400,
      "wastedPercent": 98.83843150714317
    },
    {
      "url": "https://cdn.replit.com/_next/static/chunks/0qw_7d1j9db_6.js",
      "totalBytes": 47783,
      "wastedBytes": 23210,
      "wastedPercent": 48.57456877105751
    }
  ],
  "headings": [
    {
      "key": "url",
      "label": "URL",
      "valueType": "url",
      "subItemsHeading": {
        "key": "source",
        "valueType": "code"
      }
    },
    {
      "key": "totalBytes",
      "label": "Transfer Size",
      "valueType": "bytes",
      "subItemsHeading": {
        "key": "sourceBytes"
      }
    },
    {
      "key": "wastedBytes",
      "label": "Est Savings",
      "valueType": "bytes",
      "subItemsHeading": {
        "key": "sourceWastedBytes"
      }
    }
  ],
  "sortedBy": [
    "wastedBytes"
  ],
  "debugData": {
    "type": "debugdata",
    "metricSavings": {
      "FCP": 0,
      "LCP": 300
    }
  },
  "overallSavingsMs": 300,
  "overallSavingsBytes": 336948
}
Environment & raw metrics
{
  "finalUrl": "https://replit.com/",
  "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) 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": 27446.29349999998
    },
    {
      "id": "cumulative-layout-shift",
      "unit": "unitless",
      "value": 0
    },
    {
      "id": "total-blocking-time",
      "unit": "millisecond",
      "value": 2971
    },
    {
      "id": "first-contentful-paint",
      "unit": "millisecond",
      "value": 3152.436499999999
    },
    {
      "id": "speed-index",
      "unit": "millisecond",
      "value": 9489.570231529337
    }
  ]
}

01 / WHAT WORKS

What makes it work

The question leads directly to creation

What will you build? leads directly into the composer instead of making visitors traverse a feature list first.

Examples make possibilities concrete

Output icons and prompts such as Hiring tracker add context to an otherwise empty composer.

02 / NEXT STEPS

Where to go next

  1. 01

    Bring the mobile composer upward

    A large gap separates mobile navigation from the headline, placing the composer low on the screen while the first-visit cookie panel reduces the visible area.

    Reduce the narrow-screen hero top gap while preserving spacing between headline, explanation and composer. Check the 390×844 layout with the cookie panel both visible and dismissed.

03 / DESIGN LANGUAGE

A design system you can reuse

Colors

Background

#f6f5f4

Text

#37383c

Accent

#faf6f1

Typography

Display font
ABC Diatype Plus Variable
Body font
Replit Diatype
Heading / body
64px / 14px

Spacing & shape

Section gap
0px
Component inset
Card radius
Button radius
6px

Parameters are element samples. Empty values are unknown, and individual samples are not site-wide rules.

04 / EVIDENCE

The detail behind the report

Values come from one capture. Fonts, radii and spacing are element samples, not a universal site-wide specification. Empty values are unknown. HTML bytes are source size, not compressed transfer size; script counts are DOM tags, not network requests.

Taste1 observations

Bring the mobile composer upward

Medium

A large gap separates mobile navigation from the headline, placing the composer low on the screen while the first-visit cookie panel reduces the visible area.

Reduce the narrow-screen hero top gap while preserving spacing between headline, explanation and composer. Check the 390×844 layout with the cookie panel both visible and dismissed.

mobile.png: large header-to-headline gap and bottom cookie panel
Launch2 observations

No X-Content-Type-Options

Without nosniff, browsers may interpret a file as a different type than you sent. It is a one-line header.

Set X-Content-Type-Options: nosniff.

x-content-type-options missing

No Referrer-Policy

The default referrer can leak internal paths and query strings to third parties.

Set Referrer-Policy: strict-origin-when-cross-origin.

referrer-policy missing
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
Improve the current project using the 2026-09-05T02:31:26.840Z snapshot of https://replit.com. First identify changes since capture; do not revert newer behavior to the old snapshot.

Design baseline
Place a centered headline and one explanatory line above the composer, followed by output types and example prompts. Reserve orange for outlines and action cues rather than large surfaces.
{
  "colors": [
    {
      "role": "bg",
      "hex": "#f6f5f4"
    },
    {
      "role": "ink",
      "hex": "#37383c"
    },
    {
      "role": "accent",
      "hex": "#faf6f1"
    }
  ],
  "fonts": {
    "body": "Replit Diatype",
    "display": "ABC Diatype Plus Variable",
    "stack": [
      "Replit Diatype",
      "ABC Diatype Plus Variable",
      "ABC Diatype",
      "IBM Plex Sans"
    ]
  },
  "radius": {
    "button": "6px",
    "card": "",
    "field": "6px"
  },
  "space": {
    "section": "0px",
    "card": ""
  },
  "type": {
    "h1": "64px",
    "body": "14px",
    "weight": "400",
    "lineHeight": "normal",
    "letterSpacing": "-3.84px"
  }
}
Values come from one capture. Fonts, radii and spacing are element samples, not a universal site-wide specification. Empty values are unknown. HTML bytes are source size, not compressed transfer size; script counts are DOM tags, not network requests.

Actions
1. Bring the mobile composer upward
Reduce the narrow-screen hero top gap while preserving spacing between headline, explanation and composer. Check the 390×844 layout with the cookie panel both visible and dismissed.
Evidence: mobile.png: large header-to-headline gap and bottom cookie panel

2. No X-Content-Type-Options
Set X-Content-Type-Options: nosniff.
Evidence: x-content-type-options missing

3. No Referrer-Policy
Set Referrer-Policy: strict-origin-when-cross-origin.
Evidence: referrer-policy missing

Acceptance
- Check text, layout and the main action “Create account” at 1440×900 and 390×844.
- Preserve branding, authentication and business behavior. A screenshot does not prove broken interaction.
- Change only evidence-backed issues. Validate security headers against existing resources and authentication in report-only mode where supported.
- Compare before/after screenshots and run relevant functional tests. Do not claim untested behavior passed.