PageSourceSearch

https://blueprint.perfectux.ai/login?returnTo=%2Fchat

html perfectux.ai collected 2026-10-05 12:24:28 UTC 11,150 bytes, 91 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/>
vendor: 66 bytes, line 1
1<script async="" src="https://www.googletagmanager.com/gtag/js?id=
1G-KXQQK01RLT
vendor: 11 bytes, line 1
1"></script>
1<title>Signing in | PerfectUX.ai</title><meta name="robots" content="noindex, nofollow"/><link rel="icon" href="/favicon.webp" type="image/webp"/><link rel="modulepreload" href="/assets/entry.client-Djtr8biM.js"/><link rel="modulepreload" href="/assets/chunk-UVKPFVEO-B_8IjzYN.js"/><link rel="modulepreload" href="/assets/index-BSxXfjRj.js"/><link rel="modulepreload" href="/assets/root-BQKD0bAP.js"/><link rel="modulepreload" href="/assets/theme-B3CdMR8V.js"/><link rel="modulepreload" href="/assets/index-CoyGB6gM.js"/><link rel="modulepreload" href="/assets/QueryClientProvider-4U3lFnwC.js"/><link rel="modulepreload" href="/assets/workspace-revalidation-Cpm7ho_k.js"/><link rel="modulepreload" href="/assets/login-WWxZBN5y.js"/><link rel="stylesheet" href="/assets/root-BNcVyFCN.css"/><style type="text/css">@font-face {font-family:'Outfit';font-style:normal;font-weight:100 900;src:url(/cf-fonts/v/outfit/5.2.8/latin/wght/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:'Outfit';font-style:normal;font-weight:100 900;src:url(/cf-fonts/v/outfit/5.2.8/latin-ext/wght/normal.woff2);unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}</style>
1<script>(function(){try{var t=localStorage.getItem("theme")||"dark";var d=document.documentElement;if(t==="system"){t=window.matchMedia("(prefers-color-scheme:dark)").matches?"dark":"light"}d.classList.add(t)}catch(e){}})()</script>
1<script data-cfasync="false" nonce="f6c00b5a-979f-4963-a3b4-a316f403b936">try{(function(w,d){!function(kP,kQ,kR,kS){if(kP.zaraz)console.error("zaraz is loaded twice");else{kP[kR]=kP[kR]||{};kP[kR].executed=[];kP.zaraz={deferred:[],listeners:[]};kP.zaraz._v="20";kP.zaraz._n="f6c00b5a-979f-4963-a3b4-a316f403b936";kP.zaraz.q=[];kP.zaraz._f=function(kT){return async function(){var kU=Array.prototype.slice.call(arguments);kP.zaraz.q.push({m:kT,a:kU})}};for(const kV of["track","set","debug"])kP.zaraz[kV]=kP.zaraz._f(kV);kP.zaraz.init=()=>{var kW=kQ.getElementsByTagName(kS)[0],kX=kQ.createElement(kS),kY=kQ.getElementsByTagName("title")[0];kY&&(kP[kR].t=kQ.getElementsByTagName("title")[0].text);kP[kR].x=Math.random();kP[kR].w=kP.screen.width;kP[kR].h=kP.screen.height;kP[kR].j=kP.innerHeight;kP[kR].e=kP.innerWidth;kP[kR].l=kP.location.href;kP[kR].r=kQ.referrer;kP[kR].k=kP.screen.colorDepth;kP[kR].n=kQ.characterSet;kP[kR].o=(new Date).getTimezoneOffset();if(kP.dataLayer)for(const kZ of Object.entries(Object.entries(dataLayer).reduce((k$,la)=>({...k$[1],...la[1]}),{})))zaraz.set(kZ[0],kZ[1],{scope:"page"});kP[kR].q=[];for(;kP.zaraz.q.length;){const lb=kP.zaraz.q.shift();kP[kR].q.push(lb)}kX.defer=!0;for(const lc of[localStorage,sessionStorage])Object.keys(lc||{}).filter(le=>le.startsWith("_zaraz_")).forEach(ld=>{try{kP[kR]["z_"+ld.slice(7)]=JSON.parse(lc.getItem(ld))}catch{kP[kR]["z_"+ld.slice(7)]=lc.getItem(ld)}});kX.referrerPolicy="origin";kX.src="/cdn-cgi/zaraz/s.js?z="+btoa(encodeURIComponent(JSON.stringify(kP[kR])));kW.parentNode.insertBefore(kX,kW)};["complete","interactive"].includes(kQ.readyState)?zaraz.init():kP.addEventListener("DOMContentLoaded",zaraz.init)}}(w,d,"zarazData","script");window.zaraz._p=async kH=>new Promise(kI=>{if(kH){kH.e&&kH.e.forEach(kJ=>{try{const kK=d.querySelector("script[nonce]"),kL=kK?.nonce||kK?.getAttribute("nonce"),kM=d.createElement("script");kL&&(kM.nonce=kL);kM.innerHTML=kJ;kM.onload=()=>{d.head.removeChild(kM)};d.head.appendChild(kM)}catch(kN){console.error(`Error executing script: ${kJ}\n`,kN)}});Promise.allSettled((kH.f||[]).map(kO=>fetch(kO[0],kO[1])))}kI()});zaraz._p({"e":["(function(w,d){})(window,document)"]});})(window,document)}catch(e){throw fetch("/cdn-cgi/zaraz/t"),e;};</script>
1</head><body class="antialiased min-w-sm font-sans"><a href="https://blueprint.perfectux.ai/cdn-cgi/content?id=QRM1spdehShNb6JbM00vlFW3Pom4LfXA82qs0ouz6l0-1791203068.1587343-1.2.1.1-_kJirhvSEhldy4XPpY479hax8YCNV3dcYSnzxqBmWtGMJPJQg.ygnhJQBE9l9fzD" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a><main class="flex min-h-screen items-center justify-center bg-background px-6 py-16 text-foreground"><section aria-live="polite" class="w-full max-w-lg rounded-3xl border border-border bg-card p-8 shadow-2xl shadow-black/5 sm:p-12 dark:shadow-black/30"><div aria-hidden="true" class="mb-8 size-11 rounded-2xl border border-border bg-primary"></div><p class="text-xs font-bold uppercase tracking-[0.18em] text-muted-foreground">PerfectUX.ai</p><h1 class="mt-3 text-4xl font-bold tracking-tight sm:text-5xl">Opening secure sign in…</h1><p class="mt-5 text-base leading-7 text-muted-foreground">We’ll bring you back to your PerfectUX workspace when you’re signed in.</p><a class="mt-8 inline-flex min-h-11 items-center justify-center rounded-full bg-primary px-6 font-semibold text-primary-foreground transition-opacity hover:opacity-90" href="https://perfectux.ai/login?returnTo=https%3A%2F%2Fblueprint.perfectux.ai%2Fchat">Continue to sign in</a></section></main><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
1<script>
vendor: 124 bytes, line 1
1window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', '
1G-KXQQK01RLT
vendor: 3 bytes, line 1
1');
1</script>
1<script>((storageKey2, restoreKey) => {
2    if (!window.history.state || !window.history.state.key) {
3      let key = Math.random().toString(32).slice(2);
4      window.history.replaceState({ key }, "");
5    }
6    try {
7      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
8      let storedY = positions[restoreKey || window.history.state.key];
9      if (typeof storedY === "number") {
10        window.scrollTo(0, storedY);
11      }
12    } catch (error2) {
13      console.error(error2);
14      sessionStorage.removeItem(storageKey2);
15    }
16  })("react-router-scroll-positions", null)</script>
16<script>window.__reactRouterContext = {"basename":"/","future":{"unstable_optimizeDeps":true,"unstable_passThroughRequests":false,"unstable_subResourceIntegrity":false,"unstable_trailingSlashAwareDataRequests":false,"unstable_previewServerPrerendering":false,"v8_middleware":false,"v8_splitRouteModules":false,"v8_viteEnvironmentApi":true},"routeDiscovery":{"mode":"lazy","manifestPath":"/__manifest"},"ssr":true,"isSpaMode":false};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script>
16<script type="module" async="">;
17import * as route0 from "/assets/root-BQKD0bAP.js";
18import * as route1 from "/assets/login-WWxZBN5y.js";
19  window.__reactRouterManifest = {
20  "entry": {
21    "module": "/assets/entry.client-Djtr8biM.js",
22    "imports": [
23      "/assets/chunk-UVKPFVEO-B_8IjzYN.js",
24      "/assets/index-BSxXfjRj.js"
25    ],
26    "css": []
27  },
28  "routes": {
29    "root": {
30      "id": "root",
31      "path": "",
32      "hasAction": false,
33      "hasLoader": true,
34      "hasClientAction": false,
35      "hasClientLoader": false,
36      "hasClientMiddleware": false,
37      "hasDefaultExport": true,
38      "hasErrorBoundary": true,
39      "module": "/assets/root-BQKD0bAP.js",
40      "imports": [
41        "/assets/chunk-UVKPFVEO-B_8IjzYN.js",
42        "/assets/index-BSxXfjRj.js",
43        "/assets/theme-B3CdMR8V.js",
44        "/assets/index-CoyGB6gM.js",
45        "/assets/QueryClientProvider-4U3lFnwC.js",
46        "/assets/workspace-revalidation-Cpm7ho_k.js"
47      ],
48      "css": [
49        "/assets/root-BNcVyFCN.css"
50      ]
51    },
52    "routes/login": {
53      "id": "routes/login",
54      "parentId": "root",
55      "path": "login",
56      "hasAction": false,
57      "hasLoader": true,
58      "hasClientAction": false,
59      "hasClientLoader": false,
60      "hasClientMiddleware": false,
61      "hasDefaultExport": true,
62      "hasErrorBoundary": false,
63      "module": "/assets/login-WWxZBN5y.js",
64      "imports": [
65        "/assets/chunk-UVKPFVEO-B_8IjzYN.js"
66      ],
67      "css": []
68    },
69    "routes/_index": {
70      "id": "routes/_index",
71      "parentId": "root",
72      "index": true,
73      "hasAction": false,
74      "hasLoader": true,
75      "hasClientAction": false,
76      "hasClientLoader": false,
77      "hasClientMiddleware": false,
78      "hasDefaultExport": false,
79      "hasErrorBoundary": false,
80      "module": "/assets/_index-l0sNRNKZ.js",
81      "imports": [],
82      "css": []
83    }
84  },
85  "url": "/assets/manifest-db26e028.js",
86  "version": "db26e028"
87};
88  window.__reactRouterRouteModules = {"root":route0,"routes/login":route1};
89
90import("/assets/entry.client-Djtr8biM.js");</script>
90<!--$-->
90<script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_21\":-5,\"_22\":-5},\"loaderData\",{\"_3\":4,\"_17\":18},\"root\",{\"_5\":-5,\"_6\":7,\"_8\":9},\"session\",\"site\",\"blueprint\",\"siteOrigins\",{\"_10\":11,\"_7\":12,\"_13\":14,\"_15\":16},\"main\",\"https://perfectux.ai\",\"https://blueprint.perfectux.ai\",\"roadmap\",\"https://roadmap.perfectux.ai\",\"launch\",\"https://launch.perfectux.ai\",\"routes/login\",{\"_19\":20},\"signInUrl\",\"https://perfectux.ai/login?returnTo=https%3A%2F%2Fblueprint.perfectux.ai%2Fchat\",\"actionData\",\"errors\"]\n");</script>
90<!--$-->
90<script>window.__reactRouterContext.streamController.close();</script>
90<!--/$--><!--/$-->
90<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a45c6747fc1234b7',t:'MTc5MTIwMzA2OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
90<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"2e101d871bce40a6af3c192e24c04a4f","r":1,"spa":2}' crossorigin="anonymous"></script>
90
91</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.