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/6a1624fae2aaced6126d26de/34238c535_generated_image.png" rel="icon" type="image/png"/> 39 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 40 <meta content="#D4AF37" name="theme-color"/> 41 <meta content="Register on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen." name="description"/> 42 <link href="/manifest.json" rel="manifest"/> 43 <link href="https://media.base44.com/images/public/6a1624fae2aaced6126d26de/34238c535_generated_image.png" rel="apple-touch-icon"/> 44 <link href="https://fonts.googleapis.com" rel="preconnect"/> 45 <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/> 46 <link href="https://media.base44.com" rel="preconnect"/> 47 <link href="https://base44.app" rel="preconnect"/> 48 <link href="https://base44.app" rel="dns-prefetch"/> 49 <link as="style" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap" rel="preload"/> 50 <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&
50family=Inter:wght@400;500;600;700&display=swap" media="print" onload="this.media='all'" rel="stylesheet"/> 51 <noscript> 52 <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"/> 53 </noscript> 54 <title> 55 Register | MarmoCore 56 </title> 57
57<script crossorigin="" src="/assets/index-D8ww6b7J.js" type="module"> 58 </script>
58 59 <link crossorigin="" href="/assets/vendor-query-B-_nDQQY.js" rel="modulepreload"/> 60 <link crossorigin="" href="/assets/vendor-react-BUIlT3ms.js" rel="modulepreload"/> 61 <link crossorigin="" href="/assets/vendor-charts-i-522T5A.js" rel="modulepreload"/> 62 <link crossorigin="" href="/assets/vendor-three-1K-S22da.js" rel="modulepreload"/> 63 <link crossorigin="" href="/assets/vendor-pdf-Bwkk3Ew0.js" rel="modulepreload"/> 64 <link crossorigin="" href="/assets/vendor-radix-X0WMATEu.js" rel="modulepreload"/> 65 <link crossorigin="" href="/assets/index-D6ks_Y4J.css" rel="stylesheet"/> 66
66<script type="module"> 67 if (window.self === window.top) { 68 let lastPath = ""; 69 function getPageNameFromPath(path) { 70 const segments = path.split("/").filter(Boolean); 71 return segments[0] || null; 72 } 73 function trackPageView() { 74 const path = window.location.pathname; 75 if (path === lastPath) return; 76 lastPath = path; 77 const pageName = getPageNameFromPath(path) || "home"; 78 const appId = "6a1624fae2aaced6126d26de"; 79 if (!appId) return; 80 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 81 method: "POST", 82 }).catch(() => {}); 83 } 84 const originalPushState = history.pushState.bind(history); 85 history.pushState = function (...args) { 86 originalPushState(...args); 87 trackPageView(); 88 }; 89 const originalReplaceState = history.replaceState.bind(history); 90 history.replaceState = function (...args) { 91 originalReplaceState(...args); 92 trackPageView(); 93 }; 94 window.addEventListener("popstate", trackPageView); 95 trackPageView(); 96} 97 </script>
97 98 <meta content="Register | MarmoCore" property="og:title"/> 99 <meta content="Register on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen." property="og:description"/> 100 <meta content="https://media.base44.com/images/public/6a1624fae2aaced6126d26de/04c9353f4_logo.png/v1/fill/w_1200,h_630/04c9353f4_logo.png" property="og:image"/> 101 <meta content="https://stone-profit-flow.base44.app/register" property="og:url"/> 102 <meta content="website" property="og:type"/> 103 <meta content="MarmoCore" property="og:site_name"/> 104 <meta content="Register | MarmoCore" name="twitter:title"/> 105 <meta content="Register on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen." name="twitter:description"/> 106 <meta content="https://media.base44.com/images/public/6a1624fae2aaced6126d26de/04c9353f4_logo.png/v1/fill/w_1200,h_630/04c9353f4_logo.png" name="twitter:image"/> 107 <meta content="summary_large_image" name="twitter:card"/> 108 <meta content="https://stone-profit-flow.base44.app/register" name="twitter:url"/> 109
109<script> 110 (function () { 111 var titles = {"/login": "Login | MarmoCore", "/register": "Register | MarmoCore", "/forgot-password": "Forgot Password | MarmoCore", "/reset-password": "Reset Password | MarmoCore", "/customer": "Customer Portal | MarmoCore", "/inventory": "Inventory Center | MarmoCore", "/pieces": "Production Center | MarmoCore", "/holds": "Inventory Center | MarmoCore", "/production-kanban": "Production Center | MarmoCore", "/payroll": "Accounting Center | MarmoCore", "/vendors": "Inventory Center | MarmoCore", "/receiving": "Inventory Center | MarmoCore", "/purchasing": "Inventory Center | MarmoCore", "/to-be-allocated": "Inventory Center | MarmoCore", "/create-job": "Production Center | MarmoCore", "/photo-timeline": "Production Center | MarmoCore", "/equipment": "Production Center | MarmoCore", "/change-orders": "Production Center | MarmoCore", "/jobs": "Production Center | MarmoCore", "/ai-ops": "AI Team | MarmoCore", "/waste-analytics": "Analytics | MarmoCore", "/crew-app": "Crew Mobile App | MarmoCore", "/material-prices": "Inventory Center | MarmoCore", "/shop-assistant": "AI Financial Analyst | MarmoCore", "/shop-floor": "Production Center | MarmoCore", "/shop-floor-traveler": "Production Center | MarmoCore", "/purchase-orders": "Inventory Center | MarmoCore", "/yard-map": "Inventory Center | MarmoCore", "/dxf-middleware": "Production Center | MarmoCore", "/quickbooks-sync": "Accounting Center | MarmoCore", "/quickbooks-sync-page": "Accounting Center | MarmoCore", "/data-migration": "Moraware Migration | MarmoCore", "/migration": "Moraware Migration | MarmoCore", "/invoices": "Accounting Center | MarmoCore", "/multi-location": "Locations | MarmoCore", "/cnc": "Production Center | MarmoCore", "/ai-templating": "Production Center | MarmoCore", "/fabrication-ai": "Production Center | MarmoCore", "/portal2": "Customer Portal | MarmoCore", "/payment-history": "Accounting Center | MarmoCore", "/ceo-dashboard": "Analytics | MarmoCore", "/advanced-analytics": "Analytics | MarmoCore", "/bi-dashboard": "Analytics | MarmoCore", "/vs-slabos": "Competitive Analysis | MarmoCore", "/feature-gaps": "Competitive Analysis | MarmoCore", "/payments": "Accounting Center | MarmoCore", "/assign": "Assign | MarmoCore", "/design-studio": "Production Center | MarmoCore", "/designer": "Production Center | MarmoCore", "/drawing-studio": "Production Center | MarmoCore", "/slab-nesting": "Production Center | MarmoCore", "/batch-nesting": "Production Center | MarmoCore", "/builder-3d": "Production Center | MarmoCore", "/tooling-supplies": "Inventory Center | MarmoCore", "/rfid-scan": "Inventory Center | MarmoCore", "/issues": "Production Center | MarmoCore", "/shop-monitor": "Production Center | MarmoCore", "/sign-quote": "Sign Quote | MarmoCore", "/embed-widget": "Embeddable Quote Widget | MarmoCore", "/embed-sales-chat": "Embeddable Sales Chat | MarmoCore", "/wix-chat": "Wix Chat Bubble | MarmoCore", "/quarry-chat": "Quarry Chat Embed | MarmoCore", "/sms-opt-in": "Sms Opt In | MarmoCore", "/privacy-policy": "Privacy Policy | MarmoCore", "/email-preview": "Email Preview | MarmoCore", "/quick-estimate": "Quick Estimate | MarmoCore", "/book-appointment": "Customer Booking Portal | MarmoCore", "/microsite": "Customer Microsite | MarmoCore", "/onboarding": "Guided Onboarding | MarmoCore", "/import-data": "Data Import Hub | MarmoCore", "/payment-complete": "Payment Complete | MarmoCore", "/free-tools": "Free Tools | MarmoCore", "/edge-styles": "Production Center | MarmoCore", "/approvals": "Accounting Center | MarmoCore", "/accounts-payable": "Accounting Center | MarmoCore", "/chart-of-accounts": "Accounting Center | MarmoCore", "/general-ledger": "Accounting Center | MarmoCore", "/quarry": "The Quarry | MarmoCore", "/dashboard": "MarmoCore"}; 112 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 113 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 114 var dashed = function (s) { 115 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 116 }; 117 var decode = function (s) { 118 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 119 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 120 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 121 }; 122 var segments = function (path) { return path.split("/").filter(
122Boolean).map(decode); }; 123 var norm = function (path) { 124 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 125 return parts.length ? "/" + parts.join("/") : "/"; 126 }; 127 var lastPath = location.pathname, written = document.title, on = true; 128 var sync = function () { 129 // Path only: a hash/query change is the same page, and the SDK strips its own auth 130 // params with replaceState -- neither must clobber a server-rendered title in place. 131 if (!on || location.pathname === lastPath) return; 132 lastPath = location.pathname; 133 if (document.title !== written) { on = false; return; } 134 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 135 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 136 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 137 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 138 // a redirect landing on an unmapped path would bake the placeholder into the stored 139 // snapshot. Leaving the title alone degrades to today's behavior instead. 140 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 141 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 142 // dashes there, and the client cannot tell the two apart. The map emits every reachable 143 // shape per segment instead (_client_url_variants). 144 var title = titles[norm(location.pathname)]; 145 if (title === undefined) return; 146 document.title = title; 147 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 148 // keeping the assigned string would make the next sync() read our own write as the app's. 149 written = document.title; 150 }; 151 var wrap = function (fn) { 152 // The history entry is already pushed by the time sync() runs, so a throw here would 153 // surface inside the host app's router and break navigation. This is injected into apps 154 // we cannot test, so it swallows rather than trusting the trace. 155 return function () { 156 var r = fn.apply(this, arguments); 157 try { sync(); } catch (e) {} 158 return r; 159 }; 160 }; 161 history.pushState = wrap(history.pushState); 162 history.replaceState = wrap(history.replaceState); 163 window.addEventListener("popstate", sync); 164})(); 165 </script>
165 166 <meta content="yes" name="mobile-web-app-capable"/> 167 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 168 <meta content="MarmoCore" name="apple-mobile-web-app-title"/> 169 <link href="https://stone-profit-flow.base44.app/register" rel="canonical"/> 170
170<script data-seo-source="builder" type="application/ld+json"> 171 {"name": "MarmoCore", "@context": "https://schema.org", "@type": "WebSite", "url": "https://marmocore.com"} 172 </script>
172 173
173<script data-seo-source="builder" type="application/ld+json"> 174 {"name": "MarmoCore", "logo": "https://media.base44.com/images/public/6a1624fae2aaced6126d26de/c3fa7bf39_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://marmocore.com"} 175 </script>
175 176
176<script data-seo-source="builder" type="application/ld+json"> 177 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://stone-profit-flow.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "Register | MarmoCore", "item": "https://stone-profit-flow.base44.app/register"}]} 178 </script>
178 179 <meta content="noindex, follow" name="robots"/> 180 </head> 181 <body> 182 <div id="root"> 183 <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;"> 184 <main> 185 <header> 186 <h1> 187 Register | MarmoCore 188 </h1> 189 <p> 190 Register on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 191 </p> 192 </header> 193 <nav aria-label="Pages"> 194 <h2> 195 Pages 196 </h2> 197 <ul> 198 <li> 199 <a href="/login"> 200 Login 201 </a> 202 â Login on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 203 </li> 204 <li> 205 <a href="/register"> 206 Register 207 </a> 208 â Register on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 209 </li> 210 <li> 211 <a href="/forgot-password"> 212 Forgot Password 213 </a> 214 â Forgot Password on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 215 </li> 216 <li> 217 <a href="/reset-password"> 218 Reset Password 219 </a> 220 â Reset Password on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 221 </li> 222 <li> 223 <a href="/customer"> 224 Customer Portal 225 </a> 226 â Customer Portal on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 227 </li> 228 <li> 229 <a href="/inventory"> 230 Inventory Center 231 </a> 232 â Inventory Center on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 233 </li> 234 <li> 235 <a href="/pieces"> 236 Production Center 237 </a> 238 â Production Center on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 239 </li> 240 <li> 241 <a href="/payroll"> 242 Accounting Center 243 </a> 244 â Accounting Center on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 245 </li> 246 <li> 247 <a href="/ai-ops"> 248 AI Team 249 </a> 250 â AI Team on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 251 </li> 252 <li> 253 <a href="/waste-analytics"> 254 Analytics 255 </a> 256 â Analytics on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 257 </li> 258 <li> 259 <a href="/crew-app"> 260 Crew Mobile App 261 </a> 262 â Crew Mobile App on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 263 </li> 264 <li> 265 <a href="/shop-assistant"> 266 AI Financial Analyst 267 </a> 268 â AI Financial Analyst on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 269 </li> 270 <li> 271 <a href="/data-migration"> 272 Moraware Migration 273 </a> 274 â Moraware Migration on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 275 </li> 276 <li> 277 <a href="/multi-location"> 278 Locations 279 </a> 280 â Locations on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 281 </li> 282 <li> 283 <a href="/vs-slabos"> 284 Competitive Analysis 285 </a> 286 â Competitive Analysis on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 287 </li> 288 <li> 289 <a href="/assign"> 290 Assign 291 </a> 292 â Assign on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 293 </li> 294 <li> 295 <a href="/sign-quote"> 296 Sign Quote 297 </a> 298 â Sign Quote on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 299 </li> 300 <li> 301 <a href="/embed-widget"> 302 Embeddable Quote Widget 303 </a> 304 â Embeddable Quote Widget on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 305 </li> 306 <li> 307 <a href="/embed-sales-chat"> 308 Embeddable Sales Chat 309 </a> 310 â Embeddable Sales Chat on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 311 </li> 312 <li> 313 <a href="/wix-chat"> 314 Wix Chat Bubble 315 </a> 316 â Wix Chat Bubble on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 317 </li> 318 <li> 319 <a href="/quarry-chat"> 320 Quarry Chat Embed 321 </a> 322 â Quarry Chat Embed on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 323 </li> 324 <li> 325 <a href="/sms-opt-in"> 326 Sms Opt In 327 </a> 328 â Sms Opt In on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 329 </li> 330 <li> 331 <a href="/privacy-policy"> 332 Privacy Policy 333 </a> 334 â Privacy Policy on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 335 </li> 336 <li> 337 <a href="/email-preview"> 338 Email Preview 339 </a> 340 â Email Preview on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 341 </li> 342 <li>
343 <a href="/quick-estimate"> 344 Quick Estimate 345 </a> 346 â Quick Estimate on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 347 </li> 348 <li> 349 <a href="/book-appointment"> 350 Customer Booking Portal 351 </a> 352 â Customer Booking Portal on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 353 </li> 354 <li> 355 <a href="/microsite"> 356 Customer Microsite 357 </a> 358 â Customer Microsite on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 359 </li> 360 <li> 361 <a href="/onboarding"> 362 Guided Onboarding 363 </a> 364 â Guided Onboarding on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 365 </li> 366 <li> 367 <a href="/import-data"> 368 Data Import Hub 369 </a> 370 â Data Import Hub on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 371 </li> 372 <li> 373 <a href="/payment-complete"> 374 Payment Complete 375 </a> 376 â Payment Complete on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 377 </li> 378 <li> 379 <a href="/free-tools"> 380 Free Tools 381 </a> 382 â Free Tools on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 383 </li> 384 <li> 385 <a href="/quarry"> 386 The Quarry 387 </a> 388 â The Quarry on MarmoCore. An intuitive profitability dashboard designed specifically for kitchen. 389 </li> 390 </ul> 391 </nav> 392 </main> 393 </div> 394 </div> 395 </body> 396</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.