1<!DOCTYPE html> 2<html lang="en" data-beasties-container> 3 4<head> 5 <meta charset="utf-8"> 6 <title>OneAnchor | Sourcing Platform for Building Maintenance, Repair & Upgrades</title> 7 8 <base href="/"> 9 10 <link rel="canonical" href="https://oneanchor.ai/"> 11 <meta name="robots" content="index, follow"> 12 13 <meta name="color-scheme" content="light dark"> 14 <!-- interactive-widget=resizes-content: on Android WebView 140+ (edge-to-edge, 15 where Capacitor no longer resizes the native view for the keyboard) the 16 default is resizes-visual - Chromium PANS the visual viewport to reveal 17 the focused input, sliding sticky headers and their safe-area padding 18 up under the status bar. resizes-content shrinks the LAYOUT viewport 19 instead, so headers stay pinned and ion-content scrolls the input into 20 view. Ignored by iOS/WKWebView (the Keyboard plugin's Native resize 21 handles it there) and by WebViews â¤139 (covered by Capacitor's margin 22 workaround). --> 23 <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content"> 24 <meta name="format-detection" content="telephone=no"> 25 <meta name="msapplication-tap-highlight" content="no"> 26 <meta name="referrer" content="no-referrer-when-downgrade"> 27 28 <!-- Open Graph / Twitter Card metadata - 29 used by WhatsApp / iMessage / Slack / etc. when rendering the link 30 preview card after a user shares a OneAnchor URL. Static for now; 31 per-page OG tags would need an SSR/edge endpoint (see the 32 `/share/rfq/{id}` proposal in the share-button design notes). --> 33 <meta property="og:type" content="website"> 34 <meta property="og:site_name" content="OneAnchor"> 35 <meta property="og:title" content="OneAnchor | Sourcing Platform for Building Maintenance, Repair & Upgrades"> 36 <meta property="og:description" content="Win Orders. Build Trust. Grow Profitably."> 37 <meta property="og:image" content="https://oneanchor.ai/assets/social/og-card.png"> 38 <meta property="og:image:width" content="1200"> 39 <meta property="og:image:height" content="630"> 40 <meta property="og:url" content="https://oneanchor.ai"> 41 <meta name="twitter:card" content="summary_large_image"> 42 <meta name="twitter:title" content="OneAnchor | Sourcing Platform"> 43 <meta name="twitter:description" content="Win Orders. Build Trust. Grow Profitably."> 44 <meta name="twitter:image" content="https://oneanchor.ai/assets/social/og-card.png"> 45 <meta name="description" content="OneAnchor is the B2B sourcing platform for building maintenance, repair, and upgrades in India. Find verified suppliers, compare quotes, negotiate, and run end-to-end procure-to-pay. Free to start."> 46 47 <!-- Geo + locale signals - help Google understand market scope. --> 48 <!-- iOS Smart App Banner: Safari shows a native "get the app" strip linking 49 to the App Store listing. Harmless elsewhere. --> 50 <meta name="apple-itunes-app" content="app-id=6779513849"> 51 52 <meta name="geo.region" content="IN"> 53 <meta name="geo.placename" content="India"> 54 55 <!-- Schema.org JSON-LD - machine-readable summary for search engines, 56 vendor URL-categorisation crawlers, and link-preview bots. Nodes: 57 - Organization: brand + parent + contact + social (sameAs). 58 - SoftwareApplication: the product itself. 59 - WebSite: enables Google sitelinks search box via potentialAction. 60 - FAQPage: common questions, eligible for FAQ rich result. 61 Keep descriptions in sync with the static /about route. 62 63 NOTE: drop social URLs into the Organization.sameAs array when 64 LinkedIn / X / etc. exist (e.g. "https://www.linkedin.com/company/oneanchor"). 65 Empty array is fine; some are searched for by entity graphs. --> 66
66<script type="application/ld+json"> 67 { 68 "@context": "https://schema.org", 69 "@graph": [ 70 { 71 "@type": "Organization", 72 "@id": "https://oneanchor.ai/#organization", 73 "name": "OneAnchor", 74 "legalName": "Eternal Platforms LLP", 75 "url": "https://oneanchor.ai", 76 "logo": "https://oneanchor.ai/assets/icon/logo.png", 77 "email": "[email protected]", 78 "description": "OneAnchor is a B2B sourcing platform for building maintenance, repair and upgrades. Buyers float material requests and service requirements; suppliers compete on price, lead time, and quality.", 79 "parentOrganization": { 80 "@type": "Organization", 81 "name": "Eternal Platforms LLP" 82 }, 83 "areaServed": { 84 "@type": "Country", 85 "name": "India" 86 }, 87 "sameAs": [], 88 "contactPoint": [{ 89 "@type": "ContactPoint", 90 "contactType": "customer support", 91 "email": "[email protected]", 92 "areaServed": "IN", 93 "availableLanguage": ["en"] 94 }] 95 }, 96 { 97 "@type": "SoftwareApplication", 98 "@id": "https://oneanchor.ai/#app", 99 "name": "OneAnchor", 100 "applicationCategory": "BusinessApplication", 101 "applicationSubCategory": "Procurement Software", 102 "operatingSystem": "Web, Android, iOS", 103 "url": "https://oneanchor.ai", 104 "description": "Find suppliers, compare quotes, negotiate, and run end-to-end procure-to-pay for building maintenance, repair and upgrade projects.", 105 "publisher": { "@id": "https://oneanchor.ai/#organization" }, 106 "offers": { 107 "@type": "Offer", 108 "price": "0", 109 "priceCurrency": "INR", 110 "description": "Free to sign up; paid plans for additional seats and features." 111 } 112 }, 113 { 114 "@type": "WebSite", 115 "@id": "https://oneanchor.ai/#website", 116 "url": "https://oneanchor.ai", 117 "name": "OneAnchor", 118 "publisher": { "@id": "https://oneanchor.ai/#organization" }, 119 "inLanguage": "en", 120 "potentialAction": { 121 "@type": "SearchAction", 122 "target": { 123 "@type": "EntryPoint", 124 "urlTemplate": "https://oneanchor.ai/?q={search_term_string}" 125 }, 126 "query-input": "required name=search_term_string" 127 } 128 }, 129 { 130 "@type": "FAQPage", 131 "@id": "https://oneanchor.ai/#faq", 132 "mainEntity": [ 133 { 134 "@type": "Question", 135 "name": "What is OneAnchor?", 136 "acceptedAnswer": { 137 "@type": "Answer", 138 "text": "OneAnchor is a B2B sourcing platform for building maintenance, repair, and upgrades. Buyers float material requests and service requirements; verified suppliers compete on price, lead time, and quality through structured quotes, transparent negotiation, and end-to-end procure-to-pay." 139 } 140 }, 141 { 142 "@type": "Question", 143 "name": "Who is OneAnchor for?", 144 "acceptedAnswer": { 145 "@type": "Answer", 146 "text": "Buyers: residential and commercial property owners, facility management companies, contractors, builders, and project teams running maintenance or capex projects. Sellers: material distributors, service providers, and trade contractors serving the Indian buildings sector." 147 } 148 }, 149 { 150 "@type": "Question", 151 "name": "Is OneAnchor free?", 152 "acceptedAnswer": { 153 "@type": "Answer", 154 "text": "Yes, OneAnchor is free to sign up. Paid plans are available for additional seats and advanced features. See the pricing page for details." 155 } 156 }, 157 { 158 "@type": "Question", 159 "name": "Who operates OneAnchor?", 160 "acceptedAnswer": { 161 "@type": "Answer", 162 "text": "OneAnchor is operated by Eternal Platforms LLP." 163 } 164 } 165 ] 166 } 167 ] 168 } 169 </script>
169 170 171 <meta name="google-signin-client_id" content="25743855150-cus2hshn48kkpo5q3nf8ir0vsouvlabm.apps.googleusercontent.com"> 172
172<script src="https://accounts.google.com/gsi/client" async defer></script>
172 173 174 <link rel="preconnect" href="https://fonts.googleapis.com"> 175 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 176 <style>@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;
176src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-1D
176BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;
176src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('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-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/inter/v20/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('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-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewti_Wo7H.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewtG_Wo7H.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewta_Wo7H.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewtq_Wo7H.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewtu_Wo7H.woff2) format('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-face{font-family:'Source Serif 4';font-style:italic;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFK2_tTDB4M7-auWDN0ahZJW1gewtW_Wg.woff2) format('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-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gW8tenXg.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gf8tenXg.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gY8tenXg.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gU8tenXg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;
176src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gV8tenXg.woff2) format('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-face{font-family:'Source Serif 4';font-style:normal;font-weight:200 900;font-display:swap;src:url(https://fonts.gstatic.com/s/sourceserif4/v14/vEFI2_tTDB4M7-auWDN0ahZJW1gb8tc.woff2) format('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;}</style> 177 178 <link rel="icon" type="image/png" href="assets/icon/favicon-logo.png"> 179 180 <!-- The landing hero image (the LCP element on '/') is preloaded by the 181 route script below, only on '/', so other routes don't pay for it. --> 182 183 <!-- add to homescreen for ios --> 184 <meta name="mobile-web-app-capable" content="yes"> 185 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 186 <!-- Razorpay checkout.js is NOT loaded here. The SDK eagerly preloads 187 ~100+ payment-method chunks (v2-entry-*.modern.js) on parse, which 188 saturated the main thread on EVERY page and made list-page Filter / 189 Sort interactions hang. It's now lazy-loaded on demand by 190 RazorpayCheckoutService.loadSdk(), only when the user opens checkout. --> 191 192 <!-- Instant landing hero - mirrors the above-the-fold of landing.page.html 193 so the H1 (LCP element) paints in the first ~300ms after the HTML lands 194 instead of waiting for the 500KB+ Angular bundle to download, parse, 195 and execute. Angular's bootstrap REPLACES the entire <app-root> subtree, 196 so the swap from this static markup to the live landing component is 197 seamless when the styles match. 198 199 Show only on '/' so /login, /signup, /pricing etc. don't flash landing 200 markup. The data-route attribute is set synchronously, before any 201 layout happens, so the CSS rule below doesn't race the parser. --> 202
202<script> 203 (function () { 204 var p = location.pathname; 205 if (p === '/' || p === '') { 206 document.documentElement.setAttribute('data-route', 'landing'); 207 // Start the hero phone image (the landing LCP element) now instead of 208 // after the Angular bundle and the lazy landing chunk have loaded. 209 // Same URL as the <img> in landing.page.html, so it's one download. 210 var l = document.createElement('link'); 211 l.rel = 'preload'; 212 l.as = 'image'; 213 l.href = 'assets/landing/hero-phone.png'; 214 l.setAttribute('fetchpriority', 'high'); 215 document.head.appendChild(l); 216 } 217 })(); 218 </script>
218 219 <style> 220 /* Default: instant hero hidden, spinner shown (legacy behaviour). */ 221 .oa-instant-hero { display: none; } 222 /* Landing route only: show the hero, hide the spinner. */ 223 html[data-route="landing"] .oa-instant-hero { display: block; } 224 html[data-route="landing"] .oa-loading { display: none; } 225 226 .oa-instant-hero { 227 font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; 228 color: #111827; 229 background: #fff; 230 min-height: 100vh; 231 } 232 .oa-instant-hero__nav { 233 display: flex; align-items: center; justify-content: space-between; 234 max-width: 1280px; margin: 0 auto; padding: 20px 24px; gap: 16px; 235 } 236 .oa-instant-hero__logo { 237 display: flex; align-items: center; gap: 8px; 238 font-size: 22px; font-weight: 800; color: #00478F; 239 text-decoration: none; 240 } 241 .oa-instant-hero__logo svg { width: 32px; height: auto; flex-shrink: 0; } 242 .oa-instant-hero__nav-links { 243 display: flex; align-items: center; gap: 28px; 244 font-size: 16px; font-weight: 500; 245 } 246 .oa-instant-hero__nav-links a { color: #6b7280; text-decoration: none; } 247 /* Register (navy) + Login (coral), as in prelogin-marketing-header. */ 248 .oa-instant-hero__btn { 249 color: #fff !important; font-weight: 600; 250 padding: 8px 16px; border-radius: 8px; 251 box-shadow: 0 1px 2px rgba(0,0,0,0.05); 252 } 253 .oa-instant-hero__btn--register { background: #00478F; } 254 .oa-instant-hero__btn--login { background: rgb(239, 90, 79); } 255 .oa-instant-hero__content { 256 max-width: 1280px; margin: 0 auto; padding: 40px 24px 0; 257 } 258 .oa-instant-hero h1 { 259 font-weight: 900; line-height: 1.05; letter-spacing: -0.025em; 260 color: #00478F; 261 /* Same clamp() scale as landing.page.html's H1 - keep them in sync if 262 the team retunes one. */ 263 font-size: clamp(2.2rem, 4.8vw, 3.9rem); 264 margin: 0 0 16px; 265 } 266 .oa-instant-hero h1 .line-2 { color: #111827; display: block; } 267 .oa-instant-hero h1 .line-3 { color: rgb(239, 90, 79); display: block; } 268 .oa-instant-hero__lede { 269 font-size: 17px; color: #6b7280; line-height: 1.6; 270 max-width: 32rem; margin: 0; 271 } 272 .oa-instant-hero__lede strong { color: #374151; font-weight: 600; } 273 /* The live header collapses every nav link into a menu below md. */ 274 @media (max-width: 767px) { 275 .oa-instant-hero__nav-links { display: none; } 276 } 277 </style> 278<style>*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(42 109 171 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:root{--ion-color-primary:#0054e9;--ion-color-primary-rgb:0, 84, 233;--ion-color-primary-contrast:#fff;--ion-color-primary-contrast-rgb:255, 255, 255;--ion-color-primary-shade:#004acd;--ion-color-primary-tint:#1a65eb;--ion-color-secondary:#0163aa;--ion-color-secondary-rgb:1, 99, 170;--ion-color-secondary-contrast:#fff;--ion-color-secondary-contrast-rgb:255, 255, 255;--ion-color-secondary-shade:#015796;--ion-color-secondary-tint:#1a73b3;--ion-color-tertiary:#6030ff;--ion-color-tertiary-rgb:96, 48, 255;--ion-color-tertiary-contrast:#fff;--ion-color-tertiary-contrast-rgb:255, 255, 255;--ion-color-tertiary-shade:#542ae0;--ion-color-tertiary-tint:#7045ff;--ion-color-success:#2dd55b;--ion-color-success-rgb:45, 213, 91;--ion-color-success-contrast:#000;--ion-color-success-contrast-rgb:0, 0, 0;--ion-color-success-shade:#28bb50;--ion-color-success-tint:#42d96b;--ion-color-warning:#ffc409;--ion-color-warning-rgb:255, 196, 9;--ion-color-warning-contrast:#000;--ion-color-warning-contrast-rgb:0, 0, 0;--ion-color-warning-shade:#e0ac08;--ion-color-warning-tint:#ffca22;--ion-color-danger:#c5000f;--ion-color-danger-rgb:197, 0, 15;--ion-color-danger-contrast:#fff;--ion-color-danger-contrast-rgb:255, 255, 255;
278--ion-color-danger-shade:#ad000d;--ion-color-danger-tint:#cb1a27;--ion-color-light:#f4f5f8;--ion-color-light-rgb:244, 245, 248;--ion-color-light-contrast:#000;--ion-color-light-contrast-rgb:0, 0, 0;--ion-color-light-shade:#d7d8da;--ion-color-light-tint:#f5f6f9;--ion-color-medium:#636469;--ion-color-medium-rgb:99, 100, 105;--ion-color-medium-contrast:#fff;--ion-color-medium-contrast-rgb:255, 255, 255;--ion-color-medium-shade:#57585c;--ion-color-medium-tint:#737478;--ion-color-dark:#222428;--ion-color-dark-rgb:34, 36, 40;--ion-color-dark-contrast:#fff;--ion-color-dark-contrast-rgb:255, 255, 255;--ion-color-dark-shade:#1e2023;--ion-color-dark-tint:#383a3e}html{--ion-dynamic-font:-apple-system-body;--ion-font-family:var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}@supports (padding-top: 20px){html{--ion-safe-area-top:var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top:var(--safe-area-inset-top, env(safe-area-inset-top));--ion-safe-area-bottom:var(--safe-area-inset-bottom, env(safe-area-inset-bottom));--ion-safe-area-left:var(--safe-area-inset-left, env(safe-area-inset-left));--ion-safe-area-right:var(--safe-area-inset-right, env(safe-area-inset-right))}}strong{font-weight:700}a,a span{touch-action:manipulation}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #0054e9)}h1,h2{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}:root{--color-bg-page:var(--color-brand-pale);--color-bg-surface:#ffffff;--color-bg-surface-muted:#f8fafc;--color-bg-surface-accent:rgba(227, 221, 199, .2);--color-border-default:#e2e8f0;--color-border-light:#f1f5f9;--color-border-card:rgba(16, 16, 16, .08);--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-muted:#64748b;--color-text-faint:#64748b;--color-text-on-primary:#ffffff;--color-status-pending:#f59e0b;--color-status-pending-bg:#fefce8;--color-status-approved:#22c55e;--color-status-approved-bg:#f0fdf4;--color-status-rejected:#ef4444;--color-status-rejected-bg:#fef2f2;--color-status-rfq:#6366f1;--color-status-rfq-bg:#eef2ff;--color-status-overdue:#dc2626;--color-status-overdue-bg:#fef2f2;--color-sidebar-bg:#0A2744;--color-sidebar-text-idle:rgba(255, 255, 255, .65);--color-sidebar-text-active:#ffffff;--color-sidebar-hover-bg:rgba(255, 255, 255, .05);--color-sidebar-active-bg:rgba(255, 255, 255, .08);--color-sidebar-accent-bar:#ffffff;--color-sidebar-border:rgba(255, 255, 255, .06);--color-sidebar-avatar-bg:rgba(255, 255, 255, .1);--color-sidebar-badge-bg:#3B82F6;--color-sidebar-badge-text:#ffffff;--color-sidebar-rail:rgba(255, 255, 255, .12);--color-sidebar-rail-active:#3B82F6;--shadow-sm:0 1px 3px rgba(0, 0, 0, .04);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, .05);--shadow-lg:0 20px 60px rgba(0, 0, 0, .15);--shadow-card:0 4px 6px -1px rgba(0, 0, 0, .02);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:100px;--transition-fast:.15s ease;--transition-default:.2s ease;--transition-spring:.3s cubic-bezier(.4, 0, .2, 1)}:root{--mobile-tab-height:56px;--mobile-tab-raised-offset:12px;--mobile-card-radius:12px;--mobile-touch-target:44px;--mobile-content-padding:16px;--mobile-card-gap:12px;--mobile-sticky-footer-height:64px;--mobile-section-gap:24px;--mobile-fab-size:56px}:root{color-scheme:light}*{scrollbar-width:thin;scrollbar-color:#c5ccd6 transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:#c5ccd6;border-radius:9999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:#00478f}:root{--ion-safe-area-top:env(safe-area-inset-top, 0px);--ion-safe-area-bottom:env(safe-area-inset-bottom, 0px);--ion-safe-area-left:env(safe-area-inset-left, 0px);--ion-safe-area-right:env(safe-area-inset-right, 0px)}html,body{height:100%;margin:0;padding:0}:root{--ion-font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}body{font-family:var(--ion-font-family);background:#fff;color:var(--color-brand-dark)}a{-webkit-tap-highlight-color:transparent}:root{--color-brand-primary:#00478F;--color-brand-primary-rgb:0 71 143;--color-brand-primary-hover:#002f6c;--color-brand-primary-tint:#1a5fa0;--color-brand-secondary:#EF5A4F;--color-brand-secondary-rgb:239 90 79;--color-brand-neutral:#E3DDC7;--color-brand-dark:#101010;--color-brand-light:#FFFFFF;--color-brand-pale:#FAFAFA;--ion-color-primary:var(--color-brand-primary);--ion-color-primary-rgb:0, 71, 143;--ion-color-primary-contrast:#ffffff;--ion-color-primary-contrast-rgb:255, 255, 255;--ion-color-primary-shade:var(--color-brand-primary-hover);--ion-color-primary-tint:var(--color-brand-primary-tint);--ion-color-secondary:var(--color-brand-secondary);--ion-color-secondary-rgb:238, 108, 77;--ion-color-secondary-contrast:#ffffff;--ion-color-secondary-contrast-rgb:255, 255, 255;--ion-color-secondary-shade:#d26044;--ion-color-secondary-tint:#f07b60;--ion-color-tertiary:var(--color-brand-neutral);--ion-color-tertiary-rgb:227, 221, 199;--ion-color-tertiary-contrast:#101010;--ion-color-tertiary-contrast-rgb:16, 16, 16;--ion-color-tertiary-shade:#c8c3af;--ion-color-tertiary-tint:#e7e2ce;--ion-color-success:#22c55e;--ion-color-warning:#f59e0b;--ion-color-danger:#ef4444}</style><link rel="stylesheet" href="styles.38c12f648938537b.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.38c12f648938537b.css"></noscript></head> 279 280<body> 281 <app-root> 282 <!-- Pre-hydration SEO content. 283 The HTML inside <app-root> is what static (non-JS) crawlers see - 284 search engines, vendor URL-categorisation bots, LinkedIn link 285 preview, etc. Angular's bootstrap REPLACES this entire subtree 286 the moment main.js runs. 287 288 For JS-enabled clients (real users + Googlebot's renderer) the 289 .oa-pre-hydration block is HIDDEN by the default rule below and 290 a tiny loading state is shown instead - so users don't sit 291 staring at static marketing copy while the 2.5MB bundle parses. 292 The <noscript> rule re-shows the SEO content for clients that 293 literally have no JS. --> 294 <style> 295 /* DEFAULT (JS-enabled clients): hide the SEO block, show a clean 296 loading state. Angular's bootstrap replaces both as soon as 297 main.js finishes evaluating. */ 298 .oa-pre-hydration { display: none; } 299 .oa-loading { 300 display: flex; 301 flex-direction: column; 302 align-items: center; 303 justify-content: center; 304 min-height: 100vh; 305 font-family: 'Inter', system-ui, -apple-system, sans-serif; 306 color: #00478F; 307 background: #f8fafc; 308 } 309 .oa-loading svg.oa-mark { 310 width: 84px; 311 height: auto; 312 overflow: visible; 313 } 314 /* The whole icon breathes and the C-ring spins around the ring's 315 true geometric centre (viewBox 72, 72). The A stays put so it 316 remains a stable focal point inside the spinning ring. */ 317 .oa-loading .oa-mark-icon { 318 transform-origin: 72px 72px; 319 animation: oa-breathe 1.6s ease-in-out infinite; 320 } 321 .oa-loading .oa-mark-ring { 322 transform-origin: 72px 72px; 323 animation: oa-spin 2.4s linear infinite; 324 } 325 @keyframes oa-breathe { 326 0%, 100% { transform: scale(1); opacity: 0.92; } 327 50% { transform: scale(1.05); opacity: 1; } 328 } 329 @keyframes oa-spin { 330 to { transform: rotate(360deg); } 331 } 332 @media (prefers-reduced-motion: reduce) { 333 .oa-loading .oa-mark-icon, 334 .oa-loading .oa-mark-ring { animation: none; } 335 } 336 </style> 337 <!-- For clients with NO JavaScript: hide the loading state (which 338 would never go away) and show the SEO content instead. --> 339 <noscript> 340 <style> 341 .oa-pre-hydration { display: block !important; } 342 .oa-loading { display: none !important; } 343 </style> 344 </noscript> 345 346 <!-- Instant landing hero - shown ONLY on '/'. Mirrors the above-the-fold 347 of landing.page.html so the H1 (LCP element) paints in the first 348 ~300ms. Angular's bootstrap replaces this entire subtree. 349 350 If you change the H1 copy, change the matching string in 351 landing.page.html too so the static-to-live swap stays seamless. --> 352 <div class="oa-instant-hero" aria-hidden="true"> 353 <nav class="oa-instant-hero__nav"> 354 <a class="oa-instant-hero__logo" href="/"> 355 <svg viewBox="0 0 145 184" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 356 <g fill="#00478F"> 357 <path d="M72.2034 0C108.758 0 138.967 27.0819 143.746 62.2182L125.
357142 72.9675C125.148 72.6401 125.153 72.3117 125.153 71.9833C125.153 42.8293 101.446 19.1954 72.2034 19.1954C42.9605 19.1954 19.2541 42.8293 19.2541 71.9833C19.2541 88.1178 26.516 102.562 37.9587 112.244L29.6282 130.126C11.6666 117.031 0 95.8658 0 71.9833C0 32.2277 32.3268 0 72.2034 0Z"/> 358 <path d="M103.659 114.448C110.672 109.276 116.36 102.419 120.118 94.4752L107.962 87.5124L144.404 66.4348L144.492 108.438L136.857 104.063C125.025 127.717 100.517 143.966 72.2034 143.966C66.2642 143.966 60.4919 143.25 54.9691 141.903L63.2978 124.026C66.1926 124.515 69.1682 124.77 72.2034 124.77C76.9731 124.77 81.5942 124.141 85.9906 122.962L73.0528 93.1544L32.5624 181.227H10.1934L73.0528 46.2947L103.659 114.448Z"/> 359 <path d="M133.648 181.227H111.278L97.4875 149.453C99.5083 148.798 101.505 148.063 103.474 147.249C107.69 145.509 111.743 143.423 115.59 141.019L133.648 181.227Z"/> 360 </g> 361 </svg> 362 <span>OneAnchor</span> 363 </a> 364 <div class="oa-instant-hero__nav-links"> 365 <a class="oa-instant-hero__btn oa-instant-hero__btn--register" href="/get-started">Register</a> 366 <a class="oa-instant-hero__btn oa-instant-hero__btn--login" href="/entry">Login</a> 367 <a href="/pricing">Pricing</a> 368 <a href="/#faq">FAQs</a> 369 <a href="/about">About Us</a> 370 </div> 371 </nav> 372 373 <div class="oa-instant-hero__content"> 374 <h1> 375 Every Goods & Services 376 <span class="line-2">Housing Societies need for</span> 377 <span class="line-3">Maintenance, Repair and Upgrades</span> 378 </h1> 379 <p class="oa-instant-hero__lede"> 380 <strong>Verified Sellers. Best Price. Sourcing to Execution tracked.</strong><br> 381 Societies Procure, Track & Govern.<br> 382 Sellers Access, Sell & Execute. All in One Place. 383 </p> 384 </div> 385 </div> 386 387 <!-- Loading state - what JS-enabled users see for ~1-2s during 388 Angular's bootstrap on routes other than '/'. Angular will replace 389 this. Just the brand mark: the C-ring spins, the whole icon breathes. --> 390 <div class="oa-loading" aria-label="Loading OneAnchor" role="progressbar"> 391 <svg class="oa-mark" viewBox="0 0 145 184" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"> 392 <g class="oa-mark-icon" fill="#00478F"> 393 <path class="oa-mark-ring" d="M72.2034 0C108.758 0 138.967 27.0819 143.746 62.2182L125.142 72.9675C125.148 72.6401 125.153 72.3117 125.153 71.9833C125.153 42.8293 101.446 19.1954 72.2034 19.1954C42.9605 19.1954 19.2541 42.8293 19.2541 71.9833C19.2541 88.1178 26.516 102.562 37.9587 112.244L29.6282 130.126C11.6666 117.031 0 95.8658 0 71.9833C0 32.2277 32.3268 0 72.2034 0Z"/> 394 <path d="M103.659 114.448C110.672 109.276 116.36 102.419 120.118 94.4752L107.962 87.5124L144.404 66.4348L144.492 108.438L136.857 104.063C125.025 127.717 100.517 143.966 72.2034 143.966C66.2642 143.966 60.4919 143.25 54.9691 141.903L63.2978 124.026C66.1926 124.515 69.1682 124.77 72.2034 124.77C76.9731 124.77 81.5942 124.141 85.9906 122.962L73.0528 93.1544L32.5624 181.227H10.1934L73.0528 46.2947L103.659 114.448Z"/> 395 <path d="M133.648 181.227H111.278L97.4875 149.453C99.5083 148.798 101.505 148.063 103.474 147.249C107.69 145.509 111.743 143.423 115.59 141.019L133.648 181.227Z"/> 396 </g> 397 </svg> 398 </div> 399 400 <style> 401 .oa-pre-hydration { 402 font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; 403 max-width: 880px; 404 margin: 0 auto; 405 padding: 48px 24px; 406 color: #0f172a; 407 line-height: 1.55; 408 } 409 .oa-pre-hydration h1 { 410 font-size: 32px; 411 line-height: 1.2; 412 color: #00478F; 413 margin: 0 0 16px; 414 } 415 .oa-pre-hydration h2 { 416 font-size: 20px; 417 color: #00478F; 418 margin: 32px 0 8px; 419 } 420 .oa-pre-hydration p, .oa-pre-hydration li { 421 font-size: 16px; 422 color: #334155; 423 } 424 .oa-pre-hydration a { color: #00478F; } 425 .oa-pre-hydration .oa-cta { 426 display: inline-block; 427 margin-top: 20px; 428 padding: 12px 22px; 429 background: #00478F; 430 color: #fff; 431 border-radius: 8px; 432 text-decoration: none; 433 font-weight: 600; 434 } 435 .oa-pre-hydration footer { 436 margin-top: 40px; 437 padding-top: 20px; 438 border-top: 1px solid #e2e8f0; 439 font-size: 13px; 440 color: #64748b; 441 } 442 </style> 443 <div class="oa-pre-hydration"> 444 <h1>OneAnchor | Sourcing Platform for Building Maintenance, Repair & Upgrades</h1> 445 <p> 446 OneAnchor is a B2B sourcing platform that helps building owners, 447 facility managers, and contractors source materials and services 448 for maintenance, repair, and upgrade projects. Buyers float 449 material requests and service requirements; verified suppliers 450 compete on price, lead time, and quality through structured
451 quotes, transparent negotiation, and end-to-end procure-to-pay. 452 </p> 453 454 <h2>What you can do on OneAnchor</h2> 455 <ul> 456 <li>Create material requests and service requirements with attachments and detailed scopes.</li> 457 <li>Receive competitive quotes from a verified supplier network.</li> 458 <li>Negotiate, award purchase orders / work orders, and track delivery.</li> 459 <li>Manage invoicing, approvals, and remittance - all in one place.</li> 460 </ul> 461 462 <h2>Who it's for</h2> 463 <p> 464 Buyers: residential and commercial property owners, facility 465 management companies, contractors, builders, and project teams 466 running maintenance or capex projects. 467 Sellers: material distributors, service providers, and trade 468 contractors serving the Indian buildings sector. 469 </p> 470 471 <a href="/about" class="oa-cta">Learn more about OneAnchor</a> 472 473 <footer> 474 OneAnchor is a product of <strong>Eternal Platforms LLP</strong>. 475 Questions or partnership enquiries: 476 <a href="/cdn-cgi/l/email-protection#1a73747c755a75747f7b7479727568347b73"><span class="__cf_email__" data-cfemail="a6cfc8c0c9e6c9c8c3c7c8c5cec9d488c7cf">[email protected]</span></a>. 477 <br> 478 <a href="/about">About</a> · 479 <a href="/privacy">Privacy</a> · 480 <a href="/terms">Terms</a> · 481 <a href="/pricing">Pricing</a> 482 </footer> 483 </div> 484 <noscript> 485 <div style="font-family: system-ui, sans-serif; max-width: 640px; margin: 24px auto; padding: 16px; border: 1px solid #fde68a; background: #fffbeb; border-radius: 8px; color: #78350f;"> 486 OneAnchor requires JavaScript to use the application. The content 487 above is a static description of the product. Please enable 488 JavaScript in your browser, or visit 489 <a href="/about" style="color: #00478F;">/about</a> for a 490 no-JavaScript overview. 491 </div> 492 </noscript> 493 </app-root>
vendor: 109 bytes, lines 493-494
493 494<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
494<script src="runtime.b7e6d50473692fa4.js" type="module"></script>
494<script src="polyfills.e3748b96db410678.js" type="module"></script>
494<script src="main.33f010d744cfd388.js" type="module"></script>
494</body> 495 496</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.