1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8"/> 5 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 6 <link href="/manifest.json" rel="manifest"/> 7 <!-- Primary SEO --> 8 <title> 9 Shahrooz Wesbite 10 </title> 11 <meta content="Shahrooz Wesbite manages 1 data type including contact messages. Helps you organize, track, and share your work in 1 place for teams and solo users." name="description"/> 12 <meta content="Shahrooz Shekaraubi, Shahrooz Shekaraubi artist, Hidden Sun and the Alchemy of Light, Hidden Sun novel, Shahrooz author, Shahrooz UX designer, AI UX Designer, AI Agent Developer, XR Designer, VR UX, AR UX, art curator, mixed media artist, fantasy novel 2026, UX portfolio, product design consultant" name="keywords"/> 13 <meta content="Shahrooz Shekaraubi" name="author"/> 14 <meta content="noindex, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" name="robots"/> 15 <meta content="#f5f5f5" name="theme-color"/> 16 <!-- Open Graph / Facebook --> 17 <meta content="website" property="og:type"/> 18 <meta content="Shahrooz Wesbite" property="og:site_name"/> 19 <meta content="en_US" property="og:locale"/> 20 <meta content="https://shahrooz.base44.app" property="og:url"/> 21 <meta content="Shahrooz Wesbite" property="og:title"/> 22 <meta content="Shahrooz Wesbite manages 1 data type including contact messages. Helps you organize, track, and share your work in 1 place for teams and solo users." property="og:description"/> 23 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/696b8e7d50c85f218c7f36fe/921785256_Shahrooz.png?width=1200&height=630&resize=contain" property="og:image"/> 24 <meta content="1200" property="og:image:width"/> 25 <meta content="630" property="og:image:height"/> 26 <meta content="Hidden Sun and the Alchemy of Light â by Shahrooz Shekaraubi" property="og:image:alt"/> 27 <!-- Twitter Card --> 28 <meta content="summary_large_image" name="twitter:card"/> 29 <meta content="Shahrooz Wesbite" name="twitter:title"/> 30 <meta content="Shahrooz Wesbite manages 1 data type including contact messages. Helps you organize, track, and share your work in 1 place for teams and solo users." name="twitter:description"/> 31 <meta content="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/render/image/public/base44-prod/public/696b8e7d50c85f218c7f36fe/921785256_Shahrooz.png?width=1200&height=630&resize=contain" name="twitter:image"/> 32 <meta content="Hidden Sun and the Alchemy of Light â by Shahrooz Shekaraubi" name="twitter:image:alt"/> 33 <!-- Structured Data: Person --> 34
34<script type="application/ld+json"> 35 { 36 "@context": "https://schema.org", 37 "@type": "Person", 38 "name": "Shahrooz Shekaraubi", 39 "jobTitle": "Artist, Senior UX Designer & AI Agent Developer", 40 "description": "Shahrooz Shekaraubi is an artist, Senior UX Designer, and AI Agent Developer. He is the author of Hidden Sun and the Alchemy of Light, a debut contemporary fantasy novel published in 2026.", 41 "hasCredential": "Author of Hidden Sun and the Alchemy of Light", 42 "url": "https://shahrooz.base44.app/", 43 "image": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/696b8e7d50c85f218c7f36fe/3b20bc447_Shahrooz.png", 44 "sameAs": [ 45 "https://www.figma.com/@Shahrooz1", 46 "https://www.behance.net/shahroozsh", 47 "https://medium.com/@ShahroozShekaraubi", 48 "https://www.instagram.com/shahrooz.shekaraubi/", 49 "https://www.linkedin.com/in/shahrooz-shekaraubi", 50 "https://hiddensuns.com" 51 ], 52 "knowsAbout": [ 53 "Fine Art", "Mixed Media Art", "Art Curation", 54 "UX Design", "AI Design", "AI Agent Development", "XR Design", 55 "VR Design", "AR Design", "Immersive Experience Design", 56 "User Experience", "Web3", "Product Strategy", "Contemporary Fantasy Writing" 57 ], 58 "award": "Author of Hidden Sun and the Alchemy of Light (2026)", 59 "offers": { 60 "@type": "Offer", 61 "name": "UX Design & AI Product Consulting", 62 "description": "Available for freelance UX design, AI product design, XR/VR/AR design, and AI agent development consulting engagements." 63 } 64 } 65 </script>
65 66 <!-- Structured Data: Book (Hidden Sun) --> 67
67<script type="application/ld+json"> 68 { 69 "@context": "https://schema.org", 70 "@type": "Book", 71 "name": "Hidden Sun and the Alchemy of Light", 72 "author": { 73 "@type": "Person", 74 "name": "Shahrooz Shekaraubi" 75 }, 76 "datePublished": "2026-03", 77 "genre": "Contemporary Fantasy", 78 "description": "A debut contemporary fantasy novel following twelve-year-old Mihryar, who discovers a living magical carpet that opens a doorway to a mythic celestial cosmos. A luminous tale of transformation, shame, and inner light.", 79 "image": "https://media.base44.com/images/public/696b8e7d50c85f218c7f36fe/875c8b1a4_HSAOLCOVERFINAL.png", 80 "url": "https://hiddensuns.com", 81 "publisher": { 82 "@type": "Organization", 83 "name": "Self-published" 84 }, 85 "bookFormat": "https://schema.org/Paperback", 86 "inLanguage": "en", 87 "audience": { 88 "@type": "Audience", 89 "audienceType": "Young Adult / General Fiction" 90 }, 91 "isAvailableAt": [ 92 { "@type": "BookStore", "name": "Barnes & Noble" }, 93 { "@type": "BookStore", "name": "Amazon" }, 94 { "@type": "BookStore", "name": "Apple Books" }, 95 { "@type": "BookStore", "name": "Google Books" } 96 ] 97 } 98 </script>
98 99 <!-- Sitemap reference --> 100 <link href="/api/functions/generateSitemap" rel="sitemap" type="application/xml"/> 101 <!-- Favicon --> 102 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/696b8e7d50c85f218c7f36fe/921785256_Shahrooz.png" rel="icon" type="image/svg+xml"/> 103
103<script crossorigin="" src="/assets/index-CfXRcyCo.js" type="module"> 104 </script>
104 105 <link crossorigin="" href="/assets/index-Th-854Au.css" rel="stylesheet"/> 106 <meta content="https://shahrooz.base44.app" name="twitter:url"/> 107
107<script> 108 (function () { 109 var titles = {"/": "Shahrooz Wesbite", "/home": "Shahrooz Wesbite"}; 110 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 111 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 112 var dashed = function (s) { 113 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 114 }; 115 var decode = function (s) { 116 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 117 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 118 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 119 }; 120 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 121 var norm = function (path) { 122 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 123 return parts.length ? "/" + parts.join("/") : "/"; 124 }; 125 var lastPath = location.pathname, written = document.title, on = true; 126 var sync = function () { 127 // Path only: a hash/query change is the same page, and the SDK strips its own auth 128 // params with replaceState -- neither must clobber a server-rendered title in place. 129 if (!on || location.pathname === lastPath) return; 130 lastPath = location.pathname; 131 if (document.title !== written) { on = false; return; } 132 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 133 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 134 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 135 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 136 // a redirect landing on an unmapped path would bake the placeholder into the stored 137 // snapshot. Leaving the title alone degrades to today's behavior instead. 138 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 139 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 140 // dashes there, and the client cannot tell the two apart. The map emits every reachable 141 // shape per segment instead (_client_url_variants). 142 var title = titles[norm(location.pathname)]; 143 if (title === undefined) return; 144 document.title = title; 145 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 146 // keeping the assigned string would make the next sync() read our own write as the app's. 147 written = document.title; 148 }; 149 var wrap = function (fn) { 150 // The history entry is already pushed by the time sync() runs, so a throw here would 151 // surface inside the host app's router and break navigation. This is injected into apps 152 // we cannot test, so it swallows rather than trusting the trace. 153 return function () { 154 var r = fn.apply(this, arguments); 155 try { sync(); } catch (e) {} 156 return r; 157 }; 158 }; 159 history.pushState = wrap(history.pushState); 160 history.replaceState = wrap(history.replaceState); 161 window.addEventListener("popstate", sync); 162})(); 163 </script>
163 164 <meta content="yes" name="mobile-web-app-capable"/> 165 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 166 <meta content="Shahrooz Wesbite" name="apple-mobile-web-app-title"/> 167 <link href="https://shahrooz.base44.app" rel="canonical"/> 168
168<script data-seo-source="builder" type="application/ld+json"> 169 {"name": "Shahrooz Wesbite", "@context": "https://schema.org", "@type": "WebSite", "url": "https://shahrooz.world"} 170 </script>
170 171
171<script data-seo-source="builder" type="application/ld+json"> 172 {"name": "Shahrooz Wesbite", "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/696b8e7d50c85f218c7f36fe/921785256_Shahrooz.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://shahrooz.world"} 173 </script>
173 174 </head> 175 <body> 176 <div id="root"> 177 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 178 <main> 179 <header> 180 <h1> 181 Shahrooz Wesbite 182 </h1> 183 <p> 184 Shahrooz Wesbite manages 1 data type including contact messages. Helps you organize, track, and share your work in 1 place for teams and solo users. 185 </p> 186 </header> 187 </main> 188 </div> 189 </div> 190 </body> 191</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.