PageSourceSearch

https://oneanchor.ai/get-started

html oneanchor.ai collected 2026-10-05 12:22:48 UTC 49,242 bytes, 496 lines download raw bytes

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 &amp; 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 &amp; 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 &amp; Services
376          <span class="line-2">Housing Societies need&nbsp;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 &amp; Govern.<br>
382          Sellers Access, Sell &amp; 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 &amp; 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&#160;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.