Max Potential First Input Delay
230 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
Words
376
Action candidates
4
Images
30
HTML
100 KB
Primary
手气不错
Next.js / Lovable / v0 / Tailwind
Simulated mobile · Performance
2026-09-05 · Lab data, not field data.
Simulated mobile · Lab data, not field data
2026-09-05T04:37:54.017Z · Lighthouse 13.4.1
Results vary by server, network and environment, independently of taste/conversion scores. Diagnostics retain Lighthouse wording.
230 ms
The maximum potential First Input Delay that your users could experience is the duration of the longest task. Learn more about the Maximum Potential First Input Delay metric.
11.9 s
Time to Interactive is the amount of time it takes for the page to become fully interactive. Learn more about the Time to Interactive metric.
3.5 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
{
"type": "table",
"items": [
{
"group": "styleLayout",
"duration": 1282.5880000000002,
"groupLabel": "Style & Layout"
},
{
"group": "other",
"duration": 1181.0079999999753,
"groupLabel": "Other"
},
{
"group": "scriptEvaluation",
"duration": 568.5080000000003,
"groupLabel": "Script Evaluation"
},
{
"group": "paintCompositeRender",
"duration": 267.064,
"groupLabel": "Rendering"
},
{
"group": "scriptParseCompile",
"duration": 116.95200000000001,
"groupLabel": "Script Parsing & Compilation"
},
{
"group": "parseHTML",
"duration": 32.92,
"groupLabel": "Parse HTML & CSS"
},
{
"group": "garbageCollection",
"duration": 24.367999999999988,
"groupLabel": "Garbage Collection"
}
],
"headings": [
{
"key": "groupLabel",
"label": "Category",
"valueType": "text"
},
{
"key": "duration",
"label": "Time Spent",
"valueType": "ms",
"granularity": 1
}
],
"sortedBy": [
"duration"
]
}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.
{
"type": "table",
"items": [
{
"node": {
"lhId": "1-0-BUTTON",
"path": "1,HTML,1,BODY,3,DIV,1,HEADER,0,DIV,2,DIV,0,DIV,0,BUTTON",
"type": "node",
"snippet": "<button class=\"language-trigger\" aria-label=\"选择语言\" aria-haspopup=\"menu\" aria-expanded=\"false\" aria-controls=\"_R_tilvivb_\" aria-busy=\"false\">",
"selector": "div.mx-auto > div.flex > div.language-switch > button.language-trigger",
"nodeLabel": "中文",
"explanation": "Fix any of the following:\n Text inside the element is not included in the accessible name",
"boundingRect": {
"top": 12,
"left": 168,
"right": 250,
"width": 82,
"bottom": 52,
"height": 40
}
}
}
],
"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"
}
}Total size was 3,014 KiB
Large network payloads cost users real money and are highly correlated with long load times. Learn how to reduce payload sizes.
{
"type": "table",
"items": [
{
"url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
"totalBytes": 715973
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
"totalBytes": 619658
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
"totalBytes": 282294
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
"totalBytes": 203564
},
{
"url": "https://vibecheck.itool.tech/images/macbook-pro-front-hardware.png",
"totalBytes": 142199
},
{
"url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
"totalBytes": 129168
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
"totalBytes": 85374
},
{
"url": "https://vibecheck.itool.tech/_next/static/media/b53c1142b9136fe1-s.woff2",
"totalBytes": 76797
},
{
"url": "https://vibecheck.itool.tech/_next/static/media/1cd350d5fca802aa-s.woff2",
"totalBytes": 61932
},
{
"url": "https://vibecheck.itool.tech/_next/static/media/b465fe72c6993d96-s.woff2",
"totalBytes": 60467
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "totalBytes",
"label": "Transfer Size",
"valueType": "bytes"
}
],
"sortedBy": [
"totalBytes"
]
}Est savings of 110 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.
{
"type": "opportunity",
"items": [
{
"url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
"totalBytes": 112749,
"wastedBytes": 112728,
"wastedPercent": 99.98141273954668
}
],
"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": 450,
"LCP": 450
}
},
"overallSavingsMs": 450,
"overallSavingsBytes": 112728
}3 failure reasons
Many navigations are performed by going back to a previous page, or forwards again. The back/forward cache (bfcache) can speed up these return navigations. Learn more about the bfcache
{
"type": "table",
"items": [
{
"reason": "Pages with cache-control:no-store header cannot enter back/forward cache.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://vibecheck.itool.tech/zh"
}
]
},
"failureType": "Actionable",
"protocolReason": "CacheControlNoStoreHTTPOnlyCookieModified"
},
{
"reason": "Pages whose main resource has cache-control:no-store cannot enter back/forward cache.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://vibecheck.itool.tech/zh"
}
]
},
"failureType": "Not actionable",
"protocolReason": "MainResourceHasCacheControlNoStore"
},
{
"reason": "Back/forward cache is disabled because some JavaScript network request received resource with Cache-Control: no-store header.",
"subItems": {
"type": "subitems",
"items": [
{
"frameUrl": "https://vibecheck.itool.tech/zh"
}
]
},
"failureType": "Not actionable",
"protocolReason": "JsNetworkRequestReceivedCacheControlNoStoreResource"
}
],
"headings": [
{
"key": "reason",
"label": "Failure reason",
"valueType": "text",
"subItemsHeading": {
"key": "frameUrl",
"valueType": "url"
}
},
{
"key": "failureType",
"label": "Failure type",
"valueType": "text"
}
]
}Est savings of 820 KiB
A long cache lifetime can speed up repeat visits to your page. Learn more about caching.
{
"type": "table",
"items": [
{
"url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
"totalBytes": 715973,
"wastedBytes": 286389.2,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
"totalBytes": 619658,
"wastedBytes": 247863.2,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
"totalBytes": 282294,
"wastedBytes": 112917.6,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
"totalBytes": 203564,
"wastedBytes": 81425.6,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/images/macbook-pro-front-hardware.png",
"totalBytes": 142199,
"wastedBytes": 56879.600000000006,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
"totalBytes": 85374,
"wastedBytes": 34149.6,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/images/macbook-pro-front-source.jpg",
"totalBytes": 46499,
"wastedBytes": 18599.600000000002,
"cacheLifetimeMs": 86400000
},
{
"url": "https://vibecheck.itool.tech/images/crayon-underline.svg",
"totalBytes": 3785,
"wastedBytes": 1514,
"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": 839738.3999999999
},
"skipSumming": [
"cacheLifetimeMs"
]
}Est savings of 1,815 KiB
Reducing the download time of images can improve the perceived load time of the page and LCP. Learn more about optimizing image size
{
"type": "table",
"items": [
{
"url": "https://vibecheck.itool.tech/api/v1/scans/lovable-dev/screenshot?kind=desktop",
"node": {
"lhId": "page-0-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,11,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/lovable-dev/screenshot?kind=desktop\" alt=\"Lovable\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
"nodeLabel": "Lovable",
"boundingRect": {
"top": 443,
"left": 3495,
"right": 3813,
"width": 318,
"bottom": 618,
"height": 175
}
},
"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": 525604
},
{
"reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
"wastedBytes": 675873
}
]
},
"totalBytes": 715554,
"wastedBytes": 705020
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/readymag-com/screenshot?kind=desktop",
"node": {
"lhId": "page-1-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,14,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/readymag-com/screenshot?kind=desktop\" alt=\"Readymag\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
"nodeLabel": "Readymag",
"boundingRect": {
"top": 741,
"left": 3314,
"right": 3632,
"width": 318,
"bottom": 916,
"height": 175
}
},
"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": 429343
},
{
"reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
"wastedBytes": 584950
}
]
},
"totalBytes": 619293,
"wastedBytes": 608759
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/cursor-com/screenshot?kind=desktop",
"node": {
"lhId": "page-2-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,10,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/cursor-com/screenshot?kind=desktop\" alt=\"Cursor\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
"nodeLabel": "Cursor",
"boundingRect": {
"top": 443,
"left": 3155,
"right": 3473,
"width": 318,
"bottom": 618,
"height": 175
}
},
"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": 92077
},
{
"reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
"wastedBytes": 266387
}
]
},
"totalBytes": 282027,
"wastedBytes": 271493
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/teenage-engineering/screenshot?kind=desktop",
"node": {
"lhId": "page-3-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,10,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/teenage-engineering/screenshot?kind=desktop\" alt=\"teenage engineering\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
"nodeLabel": "teenage engineering",
"boundingRect": {
"top": 741,
"left": 1954,
"right": 2272,
"width": 318,
"bottom": 916,
"height": 175
}
},
"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": 13474
},
{
"reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
"wastedBytes": 192143
}
]
},
"totalBytes": 203424,
"wastedBytes": 192890
},
{
"url": "https://vibecheck.itool.tech/api/v1/scans/gumroad-com/screenshot?kind=desktop",
"node": {
"lhId": "page-4-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,1,DIV,0,DIV,11,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/gumroad-com/screenshot?kind=desktop\" alt=\"Gumroad\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-right > a.group > div.relative > img.h-full",
"nodeLabel": "Gumroad",
"boundingRect": {
"top": 741,
"left": 2294,
"right": 2612,
"width": 318,
"bottom": 916,
"height": 175
}
},
"subItems": {
"type": "subitems",
"items": [
{
"reason": "This image file is larger than it needs to be (1440x791) for its displayed dimensions (318x199). Use responsive images to reduce the image download size.",
"wastedBytes": 80567
}
]
},
"totalBytes": 85297,
"wastedBytes": 80567
}
],
"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": 1858729
}
}Optimize LCP by making the LCP image discoverable from the HTML immediately, and avoiding lazy-loading
{
"type": "list",
"items": [
{
"type": "checklist",
"items": {
"eagerlyLoaded": {
"label": "LCP resources should not use loading=lazy",
"value": false
},
"priorityHinted": {
"label": "fetchpriority=high should be applied",
"value": false
},
"requestDiscoverable": {
"label": "Request is discoverable in initial document",
"value": true
}
}
},
{
"lhId": "page-5-IMG",
"path": "1,HTML,1,BODY,3,DIV,2,MAIN,1,SECTION,0,DIV,0,DIV,0,DIV,0,A,0,DIV,0,IMG",
"type": "node",
"snippet": "<img src=\"/api/v1/scans/cursor-com/screenshot?kind=desktop\" alt=\"Cursor\" width=\"640\" height=\"360\" loading=\"lazy\" class=\"h-full w-full object-cover object-top transition-transform duration-500 ea…\">",
"selector": "div.marquee-track-left > a.group > div.relative > img.h-full",
"nodeLabel": "Cursor",
"boundingRect": {
"top": 443,
"left": -245,
"right": 73,
"width": 318,
"bottom": 618,
"height": 175
}
}
]
}Est savings of 11 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
{
"type": "table",
"items": [
{
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"subItems": {
"type": "subitems",
"items": [
{
"signal": "Array.prototype.at",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 166927,
"urlProvider": "network"
}
},
{
"signal": "Array.prototype.flat",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 166315,
"urlProvider": "network"
}
},
{
"signal": "Array.prototype.flatMap",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 166428,
"urlProvider": "network"
}
},
{
"signal": "Object.fromEntries",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 166804,
"urlProvider": "network"
}
},
{
"signal": "Object.hasOwn",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 167062,
"urlProvider": "network"
}
},
{
"signal": "String.prototype.trimEnd",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 166057,
"urlProvider": "network"
}
},
{
"signal": "String.prototype.trimStart",
"location": {
"url": "https://vibecheck.itool.tech/_next/static/chunks/128-59d92496b10b9f84.js",
"line": 0,
"type": "source-location",
"column": 165972,
"urlProvider": "network"
}
}
]
},
"wastedBytes": 11629
}
],
"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": 11629
}
}Est savings of 1,310 ms
Requests are blocking the page's initial render, which may delay LCP. Deferring or inlining can move these network requests out of the critical path.
{
"type": "table",
"items": [
{
"url": "https://vibecheck.itool.tech/_next/static/css/93829c03ac31244e.css",
"wastedMs": 750,
"totalBytes": 129168
},
{
"url": "https://vibecheck.itool.tech/_next/static/css/bf7aa8067a46f911.css",
"totalBytes": 16179
},
{
"url": "https://vibecheck.itool.tech/_next/static/css/7d01a8ed4214f82b.css",
"totalBytes": 944
}
],
"headings": [
{
"key": "url",
"label": "URL",
"valueType": "url"
},
{
"key": "totalBytes",
"label": "Transfer Size",
"valueType": "bytes"
},
{
"key": "wastedMs",
"label": "Duration",
"valueType": "timespanMs"
}
]
}{
"finalUrl": "https://vibecheck.itool.tech/zh",
"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": 11706.028
},
{
"id": "cumulative-layout-shift",
"unit": "unitless",
"value": 0.0010256316695518653
},
{
"id": "total-blocking-time",
"unit": "millisecond",
"value": 91.5
},
{
"id": "first-contentful-paint",
"unit": "millisecond",
"value": 2706.0280000000002
},
{
"id": "speed-index",
"unit": "millisecond",
"value": 3027.5598642231025
}
]
}01 / WHAT WORKS
The hero heading pairs heavy sans-serif glyphs at 72px with Caveat script styling and an orange accent underline (#ff5500), anchoring character without sacrificing legibility.
The showcase grid directly renders recognized design benchmarks like Cursor, Lovable, and Stripe alongside live palette swatches and monospace domain tags.
02 / NEXT STEPS
First-time visitors do not know whether '深度审计' yields a score, CSS variables, or an AI prompt, causing bounce before trying.
Place a prominent '查看示例报告' link or interactive toggle below the input that previews an audited report with token metrics and prompt snippets. Verify that clicking it reveals modal or inline sample data across 1440px and 390px viewports.
Typing a URL on mobile or finding a reference site on desktop is high friction compared to tapping an existing showcase card.
Make every showcase card clickable with a visible '试运行' badge that injects the target URL (e.g., linear.app) into the hero input and initiates analysis immediately. Verify the input fills and status loader triggers on both click and tap.
03 / DESIGN LANGUAGE
Background
#fafafcText
#0b0f19Accent
#0b0f19Surface
#ffffffCLEARER WORDS
网页上线深度审计。 一键提取标杆设计 Token,让 AI 照着复刻高水准网页。
网页上线前深度体检。一键提取标杆设计 Token 与 AI 提示词,直出高水准代码。
Clarifies the exact utility and output format (tokens and prompt rules) instead of abstract replication promises.04 / EVIDENCE
Explore each observation, recommendation and captured record.
A blank or generic unfurl on X, Slack, or WeChat wastes the click you already earned. This is distribution, not decoration.
Set og:title, og:description, and a 1200x630 image that matches the live headline.
og:title=yes og:image=no
A waitlist or contact form with no action is a conversion dead end. It looks ready and does nothing.
Wire the form to an endpoint, Formspark, Basin, or a server action you actually handle.
<form>
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
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
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
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="VibeCheck · 网站气质检测" h1="从 Vibe 到专业"
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
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
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
The default referrer can leak internal paths and query strings to third parties.
Set Referrer-Policy: strict-origin-when-cross-origin.
referrer-policy missing
检查公开页的品味、转化和上线风险。桌面和手机截图,按严重度排序,带证据。高分站可抽出气质给代理照着写。
05 / MAKE IT HAPPEN
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.
Enhance the VibeCheck hero conversion flow while preserving exact design tokens (#fafafc background, #0b0f19 ink, JetBrains Mono tags, 7px button radius, 10px card radius, and Caveat font on 'Vibe'). 1. Add an interactive '查看示例报告' preview trigger beneath the URL input that displays a sample audit card showing scores, extracted palette swatches, and a copyable DESIGN.md prompt snippet. 2. Make each gallery card (Cursor, Lovable, Stripe, etc.) interactive so clicking it injects its URL into the input field and executes the audit. 3. Maintain responsive padding, header layout, and mobile navigation behavior. Test at 1440x900 and 390x844 viewports to verify alignment and focus states.