1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4
4<script> 5 (function () { 6 var proto = XMLHttpRequest.prototype; 7 var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send; 8 var TOKEN_KEY = 'base44_access_token'; 9 var storedTokenHeader = function () { 10 try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; } 11 }; 12 var forgetStoredToken = function () { 13 try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {} 14 }; 15 16 proto.open = function (method, url) { 17 this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url); 18 return open.apply(this, arguments); 19 }; 20 21 proto.setRequestHeader = function (name, value) { 22 if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) { 23 this.__b44SentToken = value; 24 } 25 return setRequestHeader.call(this, name, value); 26 }; 27 28 proto.send = function () { 29 this.addEventListener('loadend', function () { 30 var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader(); 31 if (rejectedTokenStillStored) forgetStoredToken(); 32 }); 33 return send.apply(this, arguments); 34 }; 35})(); 36 </script>
36 37 <meta charset="utf-8"/> 38 <link href="https://media.base44.com/images/public/69d79dff6e21eccbd3e267d3/bd31d27b7_stemcell.png" rel="icon" type="image/svg+xml"/> 39 <meta content="width=device-width, initial-scale=1.0, viewport-fit=cover" name="viewport"/> 40 <link href="/manifest.json" rel="manifest"/> 41 <meta content="#1a1518" name="theme-color"/> 42 <link href="https://media.base44.com/images/public/6a11c156ce112048cb299fd9/06647ae8e_generated_image.png" rel="apple-touch-icon"/> 43 <meta content="yes" name="apple-mobile-web-app-capable"/> 44 <meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"/> 45 <title> 46 Prodigi Store | The Sessions 47 </title> 48
48<script crossorigin="" src="/assets/index-Xcanfj2i.js" type="module"> 49 </script>
49 50 <link crossorigin="" href="/assets/index-C7weSLW3.css" rel="stylesheet"/> 51
51<script type="module"> 52 if (window.self === window.top) { 53 let lastPath = ""; 54 function getPageNameFromPath(path) { 55 const segments = path.split("/").filter(Boolean); 56 return segments[0] || null; 57 } 58 function trackPageView() { 59 const path = window.location.pathname; 60 if (path === lastPath) return; 61 lastPath = path; 62 const pageName = getPageNameFromPath(path) || "home"; 63 const appId = "6a11c156ce112048cb299fd9"; 64 if (!appId) return; 65 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 66 method: "POST", 67 }).catch(() => {}); 68 } 69 const originalPushState = history.pushState.bind(history); 70 history.pushState = function (...args) { 71 originalPushState(...args); 72 trackPageView(); 73 }; 74 const originalReplaceState = history.replaceState.bind(history); 75 history.replaceState = function (...args) { 76 originalReplaceState(...args); 77 trackPageView(); 78 }; 79 window.addEventListener("popstate", trackPageView); 80 trackPageView(); 81} 82 </script>
82 83 <meta content="Prodigi Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles." name="description"/> 84 <meta content="Prodigi Store | The Sessions" property="og:title"/> 85 <meta content="Prodigi Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles." property="og:description"/> 86 <meta content="https://media.base44.com/images/public/69d79dff6e21eccbd3e267d3/bd31d27b7_stemcell.png/v1/fill/w_1200,h_630/bd31d27b7_stemcell.png" property="og:image"/> 87 <meta content="https://thesessions.io/print-shop" property="og:url"/> 88 <meta content="website" property="og:type"/> 89 <meta content="The Sessions" property="og:site_name"/> 90 <meta content="Prodigi Store | The Sessions" name="twitter:title"/> 91 <meta content="Prodigi Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles." name="twitter:description"/> 92 <meta content="https://media.base44.com/images/public/69d79dff6e21eccbd3e267d3/bd31d27b7_stemcell.png/v1/fill/w_1200,h_630/bd31d27b7_stemcell.png" name="twitter:image"/> 93 <meta content="summary_large_image" name="twitter:card"/> 94 <meta content="https://thesessions.io/print-shop" name="twitter:url"/> 95
95<script> 96 (function () { 97 var titles = {"/": "The Sessions", "/launching-soon": "Launching Soon | The Sessions", "/donate": "Donate | The Sessions", "/brilliantly-unbalanced": "Briliantly Unbalanced | The Sessions", "/understanding-burnout": "Understanding Burnout | The Sessions", "/store": "Store | The Sessions", "/print-shop": "Prodigi Store | The Sessions", "/fulfilment": "Fulfilment Dashboard | The Sessions", "/order-success": "Order Success | The Sessions", "/school-of-the-abnormal": "School Of The Abnormal | The Sessions", "/beatbox": "Beatbox | The Sessions", "/neuron-doctrine": "Neuron Doctrine | The Sessions", "/membership": "Membership | The Sessions", "/membership-success": "Membership Success | The Sessions", "/pure-donation": "Pure Donation | The Sessions", "/donation-success": "Donation Success | The Sessions", "/member": "Member Dashboard | The Sessions", "/about-nathan": "About Nathan | The Sessions", "/fytom": "Fytom | The Sessions", "/thesis": "Book Reader | The Sessions", "/workbook": "My Workbook | The Sessions", "/platform/brilliantly-unbalanced": "Platform / Brilliantly Unbalanced Home | The Sessions", "/platform/school-of-the-abnormal": "Platform / School Of Abnormal Home | The Sessions", "/platform/understanding-burnout": "Platform / Understanding Burnout Home | The Sessions", "/platform/research": "Platform / Research Home | The Sessions", "/login": "Login | The Sessions", "/register": "Register | The Sessions", "/forgot-password": "Forgot Password | The Sessions", "/reset-password": "Reset Password | The Sessions", "/home": "The Sessions", "/interviews": "Interview Directory | The Sessions", "/about": "About | The Sessions", "/admin": "Admin | The Sessions", "/research-reader": "The Sessions", "/researchreader": "The Sessions"}; 98 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 99 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 100 var dashed = function (s) { 101 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 102 }; 103 var decode = function (s) { 104 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 105 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 106 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 107 }; 108 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 109 var norm = function (path) { 110 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 111 return parts.length ? "/" + parts.join("/") : "/"; 112 }; 113 var lastPath = location.pathname, written = document.title, on = true; 114 var sync = function () { 115 // Path only: a hash/query change is the same page, and the SDK strips its own auth 116 // params with replaceState -- neither must clobber a server-rendered title in place. 117 if (!on || location.pathname === lastPath) return; 118 lastPath = location.pathname; 119 if (document.title !== written) { on = false; return; } 120 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 121 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 122 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 123 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 124 // a redirect landing on an unmapped path would bake the placeholder into the stored 125 // snapshot. Leaving the title alone degrades to today's behavior instead. 126 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 127 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 128 // dashes there, and the client cannot tell the two apart. The map emits every reachable 129 // shape per segment instead (_client_url_variants). 130 var title = titles[norm(location.pathname)]; 131 if (title === undefined) return; 132 document.title = title; 133 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 134 // keeping the assigned string would make the next sync() read our own write as the app's. 135 written = document.title; 136 }; 137 var wrap = function (fn) { 138 // The history entry is already pushed by the time sync() runs, so a throw here would 139 // surface inside the host app's router and break navigation. This is injected into apps 140 // we cannot test, so it swallows rather than trusting the trace. 141 return function () { 142 var r = fn.apply(this, arguments);
143 try { sync(); } catch (e) {} 144 return r; 145 }; 146 }; 147 history.pushState = wrap(history.pushState); 148 history.replaceState = wrap(history.replaceState); 149 window.addEventListener("popstate", sync); 150})(); 151 </script>
151 152 <meta content="yes" name="mobile-web-app-capable"/> 153 <meta content="The Sessions" name="apple-mobile-web-app-title"/> 154 <link href="https://thesessions.io/print-shop" rel="canonical"/> 155
155<script data-seo-source="builder" type="application/ld+json"> 156 {"name": "The Sessions", "@context": "https://schema.org", "@type": "WebSite", "url": "https://thesessions.io"} 157 </script>
157 158
158<script data-seo-source="builder" type="application/ld+json"> 159 {"name": "The Sessions", "logo": "https://media.base44.com/images/public/69d79dff6e21eccbd3e267d3/bd31d27b7_stemcell.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://thesessions.io"} 160 </script>
160 161
161<script data-seo-source="builder" type="application/ld+json"> 162 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://thesessions.io/"}, {"@type": "ListItem", "position": 2, "name": "Prodigi Store", "item": "https://thesessions.io/print-shop"}]} 163 </script>
163 164 </head> 165 <body> 166 <div id="root"> 167 <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;"> 168 <main> 169 <header> 170 <h1> 171 Prodigi Store | The Sessions 172 </h1> 173 <p> 174 Prodigi Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 175 </p> 176 </header> 177 <nav aria-label="Pages"> 178 <h2> 179 Pages 180 </h2> 181 <ul> 182 <li> 183 <a href="/ResearchReader"> 184 Research Reader 185 </a> 186 </li> 187 <li> 188 <a href="/launching-soon"> 189 Launching Soon 190 </a> 191 â Launching Soon on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 192 </li> 193 <li> 194 <a href="/donate"> 195 Donate 196 </a> 197 â Donate on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 198 </li> 199 <li> 200 <a href="/brilliantly-unbalanced"> 201 Briliantly Unbalanced 202 </a> 203 â Briliantly Unbalanced on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 204 </li> 205 <li> 206 <a href="/understanding-burnout"> 207 Understanding Burnout 208 </a> 209 â Understanding Burnout on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 210 </li> 211 <li> 212 <a href="/store"> 213 Store 214 </a> 215 â Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 216 </li> 217 <li> 218 <a href="/print-shop"> 219 Prodigi Store 220 </a> 221 â Prodigi Store on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 222 </li> 223 <li> 224 <a href="/fulfilment"> 225 Fulfilment Dashboard 226 </a> 227 â Fulfilment Dashboard on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 228 </li> 229 <li> 230 <a href="/order-success"> 231 Order Success 232 </a> 233 â Order Success on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 234 </li> 235 <li> 236 <a href="/school-of-the-abnormal"> 237 School Of The Abnormal 238 </a> 239 â School Of The Abnormal on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 240 </li> 241 <li> 242 <a href="/beatbox"> 243 Beatbox 244 </a> 245 â Beatbox on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 246 </li> 247 <li> 248 <a href="/neuron-doctrine"> 249 Neuron Doctrine 250 </a> 251 â Neuron Doctrine on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 252 </li> 253 <li> 254 <a href="/membership"> 255 Membership 256 </a> 257 â Membership on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 258 </li> 259 <li> 260 <a href="/membership-success"> 261 Membership Success 262 </a> 263 â Membership Success on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 264 </li> 265 <li> 266 <a href="/pure-donation"> 267 Pure Donation 268 </a> 269 â Pure Donation on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 270 </li> 271 <li> 272 <a href="/donation-success"> 273 Donation Success 274 </a> 275 â Donation Success on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 276 </li> 277 <li> 278 <a href="/member"> 279 Member Dashboard 280 </a> 281 â Member Dashboard on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 282 </li> 283 <li> 284 <a href="/about-nathan"> 285 About Nathan 286 </a> 287 â About Nathan on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 288 </li> 289 <li> 290 <a href="/fytom"> 291 Fytom 292 </a> 293 â Fytom on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 294 </li> 295 <li> 296 <a href="/thesis"> 297 Book Reader 298 </a> 299 â Book Reader on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 300 </li> 301 <li> 302 <a href="/workbook"> 303 My Workbook 304 </a> 305 â My Workbook on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 306 </li> 307 <li> 308 <a href="/platform/brilliantly-unbalanced"> 309 Brilliantly Unbalanced Home 310 </a> 311 â Platform / Brilliantly Unbalanced Home on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 312 </li> 313 <li> 314 <a href="/platform/school-of-the-abnormal">
315 School Of Abnormal Home 316 </a> 317 â Platform / School Of Abnormal Home on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 318 </li> 319 <li> 320 <a href="/platform/understanding-burnout"> 321 Understanding Burnout Home 322 </a> 323 â Platform / Understanding Burnout Home on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 324 </li> 325 <li> 326 <a href="/platform/research"> 327 Research Home 328 </a> 329 â Platform / Research Home on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 330 </li> 331 <li> 332 <a href="/login"> 333 Login 334 </a> 335 â Login on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 336 </li> 337 <li> 338 <a href="/register"> 339 Register 340 </a> 341 â Register on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 342 </li> 343 <li> 344 <a href="/forgot-password"> 345 Forgot Password 346 </a> 347 â Forgot Password on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 348 </li> 349 <li> 350 <a href="/reset-password"> 351 Reset Password 352 </a> 353 â Reset Password on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 354 </li> 355 <li> 356 <a href="/home"> 357 Home 358 </a> 359 â Brilliantly Unbalanced manages 2 data types including articles. Helps you organize, track, and share your work in 1 place for teams and solo users. 360 </li> 361 <li> 362 <a href="/interviews"> 363 Interview Directory 364 </a> 365 â Interview Directory on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 366 </li> 367 <li> 368 <a href="/about"> 369 About 370 </a> 371 â About on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 372 </li> 373 <li> 374 <a href="/admin"> 375 Admin 376 </a> 377 â Admin on The Sessions. Brilliantly Unbalanced manages 2 data types including articles. 378 </li> 379 </ul> 380 </nav> 381 </main> 382 </div> 383 </div> 384 </body> 385</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.