<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="Astro v5.14.1">

    <script>
      (function () {
        var storedTheme =
          typeof localStorage !== "undefined" &&
          localStorage.getItem("starlight-theme");
        var theme =
          storedTheme ||
          (window.matchMedia("(prefers-color-scheme: dark)").matches
            ? "dark"
            : "light");
        document.documentElement.dataset.theme = theme;
      })();
    </script>

    
    <!-- DNS prefetch for external domains -->
    <link rel="dns-prefetch" href="//fonts.googleapis.com">
    <link rel="dns-prefetch" href="//www.google-analytics.com">
    
    <!-- Preconnect to critical origins -->
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    
    <!-- Prefetch likely next pages -->
    <link rel="prefetch" href="/pricing">
    <link rel="prefetch" href="/blog">
    <link rel="prefetch" href="/company">
  

    <link rel="preload" href="/fonts/Inter-VariableFont_opsz,wght.ttf" as="font" type="font/ttf" crossorigin="anonymous"><link rel="preload" href="/fonts/Inter-Italic-VariableFont_opsz,wght.ttf" as="font" type="font/ttf" crossorigin="anonymous">

    

    <style>
    .container{max-width:1200px;margin:0 auto}
    .font-sans{font-family:Inter,system-ui,sans-serif}
    .text-brand-primary{color:#d83f37}
    .hero-section{min-height:100vh;display:flex;align-items:center}
  
      .hero-title{font-size:3.5rem;font-weight:700;line-height:1.1}
      .hero-description{font-size:1.25rem;opacity:0.8}
    </style>

    <!-- Primary Meta Tags --><title>Archie Core | AI-First Cloud Backend for Modern Apps</title>
<meta name="title" content="Archie Core | AI-First Cloud Backend for Modern Apps">
<meta name="description" content="Build and scale faster with Archie Core — the AI-first backend platform offering instant APIs, scalable Postgres, edge functions, storage, and real-time services for modern applications.">
<meta name="author" content="Archie">
<meta name="robots" content="index, follow">
<meta name="keywords" content="Archie Core, AI backend, AI-first cloud, AI-native backend, scalable cloud infrastructure, backend-as-a-service, instant APIs, scalable Postgres, real-time apps">

<!-- Canonical URL -->
<link rel="canonical" href="https://www.archiecore.com">

<!-- Hreflang tags for international SEO -->
<!-- Hreflang tags for international SEO --><link rel="alternate" hreflang="en" href="https://www.archiecore.com"><link rel="alternate" hreflang="es" href="https://www.archiecore.com/es"><link rel="alternate" hreflang="fr" href="https://www.archiecore.com/fr"><link rel="alternate" hreflang="it" href="https://www.archiecore.com/it"><link rel="alternate" hreflang="pt" href="https://www.archiecore.com/pt">

<!-- Default language fallback -->
<link rel="alternate" hreflang="x-default" href="https://www.archiecore.com">

<!-- Primary favicon for Google Search (must be in homepage <head>) -->
<!-- According to Google Search documentation: https://developers.google.com/search/docs/appearance/favicon-in-search -->
<link rel="icon" type="image/png" href="/images/avatar/google-archiecore.png">

<!-- Legacy favicon support for older browsers -->
<link rel="shortcut icon" type="image/png" href="/favicon.png">

<!-- Apple touch icon for iOS devices -->
<link rel="apple-touch-icon" href="/favicon.png" sizes="180x180">

<!-- Additional meta tags for better search result display -->
<meta name="application-name" content="Archie Core">
<meta name="apple-mobile-web-app-title" content="Archie Core">
<meta name="msapplication-TileImage" content="/images/avatar/google-archiecore.png">
<meta name="msapplication-TileColor" content="#000000">

<!-- Web App Manifest -->
<link rel="manifest" href="/site.webmanifest">

<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.archiecore.com">
<meta property="og:title" content="Archie Core | AI-First Cloud Backend for Modern Apps">
<meta property="og:description" content="Build and scale faster with Archie Core — the AI-first backend platform offering instant APIs, scalable Postgres, edge functions, storage, and real-time services for modern applications.">
<meta property="og:image" content="https://archiecore.com/og-images/archie-core.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:site_name" content="Archie">
<meta property="og:locale" content="en">




<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="https://www.archiecore.com">
<meta property="twitter:title" content="Archie Core | AI-First Cloud Backend for Modern Apps">
<meta property="twitter:description" content="Build and scale faster with Archie Core — the AI-first backend platform offering instant APIs, scalable Postgres, edge functions, storage, and real-time services for modern applications.">
<meta property="twitter:image" content="https://archiecore.com/og-images/archie-core.jpg">
<meta property="twitter:site" content="@archie">

<!-- Additional Meta Tags -->
<meta name="theme-color" content="#000000">
<meta name="msapplication-TileColor" content="#000000">

<!-- Structured Data -->
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Archie Core | AI-First Cloud Backend for Modern Apps","description":"Build and scale faster with Archie Core — the AI-first backend platform offering instant APIs, scalable Postgres, edge functions, storage, and real-time services for modern applications.","url":"https://www.archiecore.com","image":"https://archiecore.com/og-images/archie-core.jpg","inLanguage":"en","publisher":{"@type":"Organization","name":"Archie","url":"https://archie.com","logo":{"@type":"ImageObject","url":"https://archie.com/logo.png"}}}</script>

<!-- Breadcrumbs Schema -->
<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://archie.com"}]}</script>

<!-- Page-specific Schema -->
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Archie Core","url":"https://www.archiecore.com","logo":"https://www.archiecore.com/favicon.png","description":"AI-first cloud backend platform for modern applications","sameAs":["https://twitter.com/archie","https://linkedin.com/company/archie"],"contactPoint":{"@type":"ContactPoint","telephone":"+1-XXX-XXX-XXXX","contactType":"customer service","availableLanguage":["English","Spanish","French","Italian","Portuguese","German","Dutch","Polish","Turkish","Japanese"]}}</script>

<!-- Preconnect to external domains -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

    <script async src="https://www.googletagmanager.com/gtag/js?id=G-V6SSTJYTR6"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag("js", new Date());
      gtag("config", "G-V6SSTJYTR6");
    </script>

    <script>
      (function (w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" });
        var f = d.getElementsByTagName(s)[0],
          j = d.createElement(s),
          dl = l != "dataLayer" ? "&l=" + l : "";
        j.async = true;
        j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl;
        f.parentNode.insertBefore(j, f);
      })(window, document, "script", "dataLayer", "GTM-KHG4NFKR");
    </script>
  <link rel="stylesheet" href="/assets/index.Bde4JQbv.css">
<link rel="stylesheet" href="/assets/index.CAaqhnkc.css">
<style>@layer starlight.components{:root{--sl-badge-default-border: var(--sl-color-accent);--sl-badge-default-bg: var(--sl-color-accent-low);--sl-badge-default-text: #fff;--sl-badge-note-border: var(--sl-color-blue);--sl-badge-note-bg: var(--sl-color-blue-low);--sl-badge-note-text: #fff;--sl-badge-danger-border: var(--sl-color-red);--sl-badge-danger-bg: var(--sl-color-red-low);--sl-badge-danger-text: #fff;--sl-badge-success-border: var(--sl-color-green);--sl-badge-success-bg: var(--sl-color-green-low);--sl-badge-success-text: #fff;--sl-badge-caution-border: var(--sl-color-orange);--sl-badge-caution-bg: var(--sl-color-orange-low);--sl-badge-caution-text: #fff;--sl-badge-tip-border: var(--sl-color-purple);--sl-badge-tip-bg: var(--sl-color-purple-low);--sl-badge-tip-text: #fff}[data-theme=light]:root{--sl-badge-default-bg: var(--sl-color-accent-high);--sl-badge-note-bg: var(--sl-color-blue-high);--sl-badge-danger-bg: var(--sl-color-red-high);--sl-badge-success-bg: var(--sl-color-green-high);--sl-badge-caution-bg: var(--sl-color-orange-high);--sl-badge-tip-bg: var(--sl-color-purple-high)}.sl-badge:where(.astro-l4i4alrr){display:inline-block;border:1px solid var(--sl-color-border-badge);border-radius:.25rem;font-family:var(--sl-font-system-mono);line-height:normal;color:var(--sl-color-text-badge);background-color:var(--sl-color-bg-badge);overflow-wrap:anywhere}.sidebar-content .sl-badge:where(.astro-l4i4alrr){line-height:1;font-size:var(--sl-text-xs);padding:.125rem .375rem}.sidebar-content a[aria-current=page]>.sl-badge:where(.astro-l4i4alrr){--sl-color-bg-badge: transparent;--sl-color-border-badge: currentColor;color:inherit}.default:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-default-bg);--sl-color-border-badge: var(--sl-badge-default-border);--sl-color-text-badge: var(--sl-badge-default-text)}.note:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-note-bg);--sl-color-border-badge: var(--sl-badge-note-border);--sl-color-text-badge: var(--sl-badge-note-text)}.danger:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-danger-bg);--sl-color-border-badge: var(--sl-badge-danger-border);--sl-color-text-badge: var(--sl-badge-danger-text)}.success:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-success-bg);--sl-color-border-badge: var(--sl-badge-success-border);--sl-color-text-badge: var(--sl-badge-success-text)}.tip:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-tip-bg);--sl-color-border-badge: var(--sl-badge-tip-border);--sl-color-text-badge: var(--sl-badge-tip-text)}.caution:where(.astro-l4i4alrr){--sl-color-bg-badge: var(--sl-badge-caution-bg);--sl-color-border-badge: var(--sl-badge-caution-border);--sl-color-text-badge: var(--sl-badge-caution-text)}.small:where(.astro-l4i4alrr){font-size:var(--sl-text-xs);padding:.125rem .25rem}.medium:where(.astro-l4i4alrr){font-size:var(--sl-text-sm);padding:.175rem .35rem}.large:where(.astro-l4i4alrr){font-size:var(--sl-text-base);padding:.225rem .45rem}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6) .sl-badge:where(.astro-l4i4alrr){vertical-align:middle}}
</style>
<link rel="stylesheet" href="/assets/_document_.CIV14gqt.css">
<style>@layer starlight.components{svg:where(.astro-zqlx2vdz){color:var(--sl-icon-color);font-size:var(--sl-icon-size, 1em);width:1em;height:1em}}
@layer starlight.components{.sl-steps{--bullet-size: calc(var(--sl-line-height) * 1rem);--bullet-margin: .375rem;list-style:none;counter-reset:steps-counter var(--sl-steps-start, 0);padding-inline-start:0}.sl-steps>li{counter-increment:steps-counter;position:relative;padding-inline-start:calc(var(--bullet-size) + 1rem);padding-bottom:1px;min-height:calc(var(--bullet-size) + var(--bullet-margin))}.sl-steps>li+li{margin-top:0}.sl-steps>li:before{content:counter(steps-counter);position:absolute;top:0;inset-inline-start:0;width:var(--bullet-size);height:var(--bullet-size);line-height:var(--bullet-size);font-size:var(--sl-text-xs);font-weight:600;text-align:center;color:var(--sl-color-white);background-color:var(--sl-color-gray-6);border-radius:99rem;box-shadow:inset 0 0 0 1px var(--sl-color-gray-5)}.sl-steps>li:after{--guide-width: 1px;content:"";position:absolute;top:calc(var(--bullet-size) + var(--bullet-margin));bottom:var(--bullet-margin);inset-inline-start:calc((var(--bullet-size) - var(--guide-width)) / 2);width:var(--guide-width);background-color:var(--sl-color-hairline-light)}}@layer starlight.content{.sl-steps>li>:first-child{--lh: calc(1em * var(--sl-line-height));--shift-y: calc(.5 * (var(--bullet-size) - var(--lh)));transform:translateY(var(--shift-y));margin-bottom:var(--shift-y)}.sl-steps>li>:first-child:where(h1,h2,h3,h4,h5,h6){--lh: calc(1em * var(--sl-line-height-headings))}@supports (--prop: 1lh){.sl-steps>li>:first-child{--lh: 1lh}}}
</style><script type="module" src="/assets/page.7qqag-5g.js"></script></head>
  <body class="font-sans home-page">
    <noscript>
      <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KHG4NFKR" height="0" width="0" style="display:none;visibility:hidden"></iframe>
    </noscript>

    
  <div class="page sl-flex landing-page is-homepage no-sidebar-layout">
    <header class="header no-sidebar">
      <nav class="navbar container h-16 lg:h-[72px] flex items-center justify-between transition-colors duration-300">
  <div class="px-0 sm:px-0 lg:px-7 flex items-center transition-colors duration-300 w-full">
    <div class="order-0 shrink-0">
      <a href="/" data-home-link="true" class="flex items-center text-brand-primary lg:justify-self-start" aria-label="Archie Home">
  <img src="/images/ArchieCoreBlack.svg" alt="header.logo_alt" class="h-[22px] md:h-[24px] w-auto dark:hidden">
  <img src="/images/ArchieCore.svg" alt="header.logo_alt" class="h-[22px] md:h-[24px] w-auto hidden dark:block">
</a>
    </div>

    <div id="nav-menu" class="navbar-nav order-3 hidden w-full pb-6 lg:order-1 lg:flex lg:w-auto lg:items-center lg:pb-0 lg:ms-16">
    <nav class="flex items-center gap-6 xl:gap-8">
  <div class="relative nav-desktop-dropdown">
            <button type="button" data-dropdown-toggle class="flex items-center gap-1 text-base transition-colors cursor-pointer text-[rgba(11,18,34,1)] dark:text-white hover:text-brand-accentCore hover:text-brand-accentCore" aria-expanded="false" aria-haspopup="true">
              Reference
              <svg class="w-4 h-4 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
              </svg>
            </button>
            <div data-dropdown-menu class="absolute start-0 pt-2 w-48 opacity-0 invisible transition-all duration-200 ease-in-out z-50">
              <div class="bg-white dark:bg-gray-900 rounded-md shadow-lg border border-gray-100 dark:border-gray-800 overflow-hidden py-1">
                <a href="/overview" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Overview
                  </a><a href="/non-technical-overview" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Non-Technical User Overview
                  </a><a href="/getting-started" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Getting Started
                  </a><a href="/data-model" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Data Model
                  </a><a href="/environments" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Environments
                  </a><a href="/api-explorer" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    API Explorer
                  </a><a href="/sql-playground" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    SQL Playground
                  </a><a href="/integrations" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Integrations
                  </a><a href="/app-services" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    App Services
                  </a><a href="/settings" class="block px-4 py-2 text-sm text-start text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 hover:text-brand-accentCore">
                    Settings
                  </a>
              </div>
            </div>
          </div>
</nav>

<script type="module">const s=()=>{const c=document.querySelector(".nav-desktop-dropdown")?.closest("nav");if(c?.getAttribute("data-reference-click-init")==="true")return;c?.setAttribute("data-reference-click-init","true");const r=document.querySelectorAll(".nav-desktop-dropdown"),a=()=>{r.forEach(e=>{const t=e.querySelector("[data-dropdown-toggle]"),n=e.querySelector("[data-dropdown-menu]"),o=e.querySelector("svg");!t||!n||!o||(t.setAttribute("aria-expanded","false"),n.classList.add("opacity-0","invisible"),n.classList.remove("opacity-100","visible"),o.classList.remove("rotate-180"))})};r.forEach(e=>{const t=e.querySelector("[data-dropdown-toggle]"),n=e.querySelector("[data-dropdown-menu]"),o=e.querySelector("svg");!t||!n||!o||t.addEventListener("click",i=>{i.stopPropagation();const d=t.getAttribute("aria-expanded")==="true";a(),d||(t.setAttribute("aria-expanded","true"),n.classList.remove("opacity-0","invisible"),n.classList.add("opacity-100","visible"),o.classList.add("rotate-180"))})}),document.addEventListener("click",e=>{const t=e.target;Array.from(r).some(o=>o.contains(t))||a()}),document.addEventListener("keydown",e=>{e.key==="Escape"&&a()})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",s):s();document.addEventListener("astro:page-load",s);</script>
    </div>

    <div class="order-1 ms-auto flex items-center md:order-2 navbar-actions gap-2">
      <div class="search-bar">
            <site-search data-translations="{&#34;placeholder&#34;:&#34;Search&#34;,&#34;clear_search&#34;:&#34;&#34;}" class="header-search astro-xbpodkqe">
  <button data-open-modal disabled aria-label="Search" aria-keyshortcuts="Control+K" class="w-9 md:min-w-[179px] md:w-[220px] h-[36px] px-2 md:px-3 justify-center md:justify-start astro-xbpodkqe">
    <svg class="shrink-0 w-6 h-6 md:w-4 md:h-4 astro-xbpodkqe" aria-hidden="true">
      <use href="/sprite.svg#searchIcon" class="astro-xbpodkqe"></use>
    </svg>
    <span class="sl-block truncate leading-none min-w-0 flex-1 astro-xbpodkqe" aria-hidden="true">Search</span>
    <kbd class="hidden md:sl-flex shrink-0 astro-xbpodkqe">
      <kbd class="astro-xbpodkqe">Ctrl</kbd><kbd class="astro-xbpodkqe">K</kbd>
    </kbd>
  </button>

  <dialog style="padding:0" aria-label="Search" class="search-modal-dialog m-0 border-0 w-full max-w-full h-full max-h-full shadow-[var(--sl-shadow-lg)] open:flex min-[50rem]:mt-16 min-[50rem]:mx-auto min-[50rem]:rounded-lg min-[50rem]:w-[90%] min-[50rem]:max-w-[40rem] min-[50rem]:h-max min-[50rem]:min-h-[15rem] min-[50rem]:max-h-[calc(100%-8rem)] astro-xbpodkqe">
    <div class="dialog-frame sl-flex astro-xbpodkqe">
      <div class="search-header-row sl-flex sl-flex-col sl-gap-4 sl-mb-4 astro-xbpodkqe">
        <button data-close-modal type="button" class="search-cancel-btn sl-flex sl-shrink-0 sl-flex-col sl-items-center sl-justify-center sl-p-0 sl-m-0 sl-border-0 sl-bg-transparent sl-cursor-pointer sl-text-[var(--sl-color-text-accent)] hover:sl-bg-transparent sl-self-start astro-xbpodkqe" aria-label="Cancel">
          <svg class="h-7 w-7 shrink-0 astro-xbpodkqe" fill="currentColor" aria-hidden="true">
            <use href="/sprite.svg#cancelIcon" class="astro-xbpodkqe"></use>
          </svg>
          <span class="text-sm font-normal text-[var(--sl-color-gray-2)] mt-1.5 astro-xbpodkqe">esc</span>
        </button>
        <div class="search-container sl-w-full sl-flex sl-justify-center astro-xbpodkqe">
          <div id="starlight__search" class="sl-w-full sl-max-w-2xl astro-xbpodkqe"></div>
        </div>
      </div>
    </div>
  </dialog>
</site-search>


<script>
  (() => {
    const openBtn = document.querySelector("button[data-open-modal]");
    const shortcut = openBtn?.querySelector("kbd");
    if (!openBtn || !(shortcut instanceof HTMLElement)) return;
    const platformKey = shortcut.querySelector("kbd");

    if (platformKey) {
      if (/(Mac|iPhone|iPod|iPad)/i.test(navigator.userAgent)) {
        platformKey.textContent = "⌘";
        openBtn.setAttribute("aria-keyshortcuts", "Meta+K");
      } else {
        // Explicitly set Ctrl for non-Mac if not already correct, or leave default
        // Default usually comes from translation 'search.ctrlKey' which is likely 'Ctrl'
        platformKey.textContent = "Ctrl";
        openBtn.setAttribute("aria-keyshortcuts", "Control+K");
      }
    }

    shortcut.style.display = "";
  })();
</script>

<script type="module" src="/assets/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js"></script>
          </div>

    <div class="flex items-stretch lg:justify-self-end astro-nbjqtabl">
  <div class="flex items-center gap-2 astro-nbjqtabl">
    <style>astro-island,astro-slot,astro-static-slot{display:contents}</style><script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).only=e;window.dispatchEvent(new Event("astro:only"));})();</script><script>(()=>{var A=Object.defineProperty;var g=(i,o,a)=>o in i?A(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var d=(i,o,a)=>g(i,typeof o!="symbol"?o+"":o,a);{let i={0:t=>m(t),1:t=>a(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(a(t)),5:t=>new Set(a(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>1/0*t},o=t=>{let[l,e]=t;return l in i?i[l](e):void 0},a=t=>t.map(o),m=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([l,e])=>[l,o(e)]));class y extends HTMLElement{constructor(){super(...arguments);d(this,"Component");d(this,"hydrator");d(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let c=this.querySelectorAll("astro-slot"),n={},h=this.querySelectorAll("template[data-astro-template]");for(let r of h){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("data-astro-template")||"default"]=r.innerHTML,r.remove())}for(let r of c){let s=r.closest(this.tagName);s!=null&&s.isSameNode(this)&&(n[r.getAttribute("name")||"default"]=r.innerHTML)}let p;try{p=this.hasAttribute("props")?m(JSON.parse(this.getAttribute("props"))):{}}catch(r){let s=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(s+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${s}`,this.getAttribute("props"),r),r}let u;await this.hydrator(this)(this.Component,p,n,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});d(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),c.disconnect(),this.childrenConnectedCallback()},c=new MutationObserver(()=>{var n;((n=this.lastChild)==null?void 0:n.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});c.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}async start(){let e=JSON.parse(this.getAttribute("opts")),c=this.getAttribute("client");if(Astro[c]===void 0){window.addEventListener(`astro:${c}`,()=>this.start(),{once:!0});return}try{await Astro[c](async()=>{let n=this.getAttribute("renderer-url"),[h,{default:p}]=await Promise.all([import(this.getAttribute("component-url")),n?import(n):()=>()=>{}]),u=this.getAttribute("component-export")||"default";if(!u.includes("."))this.Component=h[u];else{this.Component=h;for(let f of u.split("."))this.Component=this.Component[f]}return this.hydrator=p,this.hydrate},e,this)}catch(n){console.error(`[astro-island] Error hydrating ${this.getAttribute("component-url")}`,n)}}attributeChangedCallback(){this.hydrate()}}d(y,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",y)}})();</script><astro-island uid="Z1XVwNV" component-url="/assets/LangToggleReact.CKtYqn3p.js" component-export="default" renderer-url="/assets/client.CYfJMTzd.js" props="{&quot;currentLanguage&quot;:[0,{&quot;code&quot;:[0,&quot;en&quot;],&quot;key&quot;:[0,&quot;english_us&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg&quot;]}],&quot;currentLanguageName&quot;:[0,&quot;English&quot;],&quot;currentLanguageAbbreviation&quot;:[0,&quot;EN&quot;],&quot;languages&quot;:[1,[[0,{&quot;code&quot;:[0,&quot;en&quot;],&quot;key&quot;:[0,&quot;english_us&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg&quot;],&quot;name&quot;:[0,&quot;English&quot;],&quot;abbreviation&quot;:[0,&quot;EN&quot;]}],[0,{&quot;code&quot;:[0,&quot;en-gb&quot;],&quot;key&quot;:[0,&quot;english_uk&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/a/ae/Flag_of_the_United_Kingdom.svg&quot;],&quot;name&quot;:[0,&quot;English&quot;],&quot;abbreviation&quot;:[0,&quot;EN&quot;]}],[0,{&quot;type&quot;:[0,&quot;separator&quot;]}],[0,{&quot;code&quot;:[0,&quot;ar&quot;],&quot;key&quot;:[0,&quot;arabic_sa&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/0/0d/Flag_of_Saudi_Arabia.svg&quot;],&quot;name&quot;:[0,&quot;العربية&quot;],&quot;abbreviation&quot;:[0,&quot;AR&quot;]}],[0,{&quot;code&quot;:[0,&quot;he&quot;],&quot;key&quot;:[0,&quot;hebrew&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/d/d4/Flag_of_Israel.svg&quot;],&quot;name&quot;:[0,&quot;עברית&quot;],&quot;abbreviation&quot;:[0,&quot;HE&quot;]}],[0,{&quot;code&quot;:[0,&quot;zh&quot;],&quot;key&quot;:[0,&quot;chinese&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/f/fa/Flag_of_the_People%27s_Republic_of_China.svg&quot;],&quot;name&quot;:[0,&quot;中文&quot;],&quot;abbreviation&quot;:[0,&quot;ZH&quot;]}],[0,{&quot;code&quot;:[0,&quot;de&quot;],&quot;key&quot;:[0,&quot;german&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/b/ba/Flag_of_Germany.svg&quot;],&quot;name&quot;:[0,&quot;Deutsch&quot;],&quot;abbreviation&quot;:[0,&quot;DE&quot;]}],[0,{&quot;code&quot;:[0,&quot;es&quot;],&quot;key&quot;:[0,&quot;spanish_es&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/9/9a/Flag_of_Spain.svg&quot;],&quot;name&quot;:[0,&quot;Español&quot;],&quot;abbreviation&quot;:[0,&quot;ES&quot;]}],[0,{&quot;code&quot;:[0,&quot;fr&quot;],&quot;key&quot;:[0,&quot;french_fr&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg&quot;],&quot;name&quot;:[0,&quot;Français&quot;],&quot;abbreviation&quot;:[0,&quot;FR&quot;]}],[0,{&quot;code&quot;:[0,&quot;fr-ca&quot;],&quot;key&quot;:[0,&quot;french_ca&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/c/cf/Flag_of_Canada.svg&quot;],&quot;name&quot;:[0,&quot;Français&quot;],&quot;abbreviation&quot;:[0,&quot;FR&quot;]}],[0,{&quot;code&quot;:[0,&quot;it&quot;],&quot;key&quot;:[0,&quot;italian&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/0/03/Flag_of_Italy.svg&quot;],&quot;name&quot;:[0,&quot;Italiano&quot;],&quot;abbreviation&quot;:[0,&quot;IT&quot;]}],[0,{&quot;code&quot;:[0,&quot;ja&quot;],&quot;key&quot;:[0,&quot;japanese&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/9/9e/Flag_of_Japan.svg&quot;],&quot;name&quot;:[0,&quot;日本語&quot;],&quot;abbreviation&quot;:[0,&quot;JA&quot;]}],[0,{&quot;code&quot;:[0,&quot;ko&quot;],&quot;key&quot;:[0,&quot;korean&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/0/09/Flag_of_South_Korea.svg&quot;],&quot;name&quot;:[0,&quot;한국어&quot;],&quot;abbreviation&quot;:[0,&quot;KO&quot;]}],[0,{&quot;code&quot;:[0,&quot;nl&quot;],&quot;key&quot;:[0,&quot;dutch&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/2/20/Flag_of_the_Netherlands.svg&quot;],&quot;name&quot;:[0,&quot;Nederlands&quot;],&quot;abbreviation&quot;:[0,&quot;NL&quot;]}],[0,{&quot;code&quot;:[0,&quot;pl&quot;],&quot;key&quot;:[0,&quot;polish&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/1/12/Flag_of_Poland.svg&quot;],&quot;name&quot;:[0,&quot;Polski&quot;],&quot;abbreviation&quot;:[0,&quot;PL&quot;]}],[0,{&quot;code&quot;:[0,&quot;pt&quot;],&quot;key&quot;:[0,&quot;portuguese_pt&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/5/5c/Flag_of_Portugal.svg&quot;],&quot;name&quot;:[0,&quot;Português&quot;],&quot;abbreviation&quot;:[0,&quot;PT&quot;]}],[0,{&quot;code&quot;:[0,&quot;pt-br&quot;],&quot;key&quot;:[0,&quot;portuguese_br&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/en/0/05/Flag_of_Brazil.svg&quot;],&quot;name&quot;:[0,&quot;Português&quot;],&quot;abbreviation&quot;:[0,&quot;PT&quot;]}],[0,{&quot;code&quot;:[0,&quot;ru&quot;],&quot;key&quot;:[0,&quot;russian&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/f/f3/Flag_of_Russia.svg&quot;],&quot;name&quot;:[0,&quot;Русский&quot;],&quot;abbreviation&quot;:[0,&quot;RU&quot;]}],[0,{&quot;code&quot;:[0,&quot;tr&quot;],&quot;key&quot;:[0,&quot;turkish&quot;],&quot;flagUrl&quot;:[0,&quot;https://upload.wikimedia.org/wikipedia/commons/b/b4/Flag_of_Turkey.svg&quot;],&quot;name&quot;:[0,&quot;Türkçe&quot;],&quot;abbreviation&quot;:[0,&quot;TR&quot;]}]]],&quot;currentPath&quot;:[0,&quot;/&quot;],&quot;variant&quot;:[0,&quot;default&quot;]}" ssr client="only" opts="{&quot;name&quot;:&quot;LangToggleReact&quot;,&quot;value&quot;:&quot;react&quot;}"></astro-island>
    <theme-toggle class="hidden lg:flex astro-nbjqtabl">
  <button type="button" class="relative inline-flex h-9 w-16 items-center rounded-full bg-gray-100 hover:bg-gray-200 dark:bg-gray-800 dark:hover:bg-gray-700 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand-primary focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900 cursor-pointer" role="switch" aria-label="Toggle theme" id="theme-toggle">
    <!-- Sliding knob -->
    <span class="pointer-events-none absolute start-1 top-1.5 block h-6 w-6 rounded-full bg-gray-900 shadow-lg ring-0 transition-transform duration-200 ease-in-out dark:ltr:translate-x-8 dark:rtl:-translate-x-8 dark:bg-white"></span>

    <!-- Sun Icon (Left) -->
    <span class="relative z-10 w-8 flex justify-center text-white dark:text-gray-500 transition-colors duration-200">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-4" aria-hidden="true">
        <path d="M12 2.25a.75.75 0 0 1 .75.75v2.25a.75.75 0 0 1-1.5 0V3a.75.75 0 0 1 .75-.75ZM7.5 12a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM18.894 6.166a.75.75 0 0 0-1.06-1.06l-1.591 1.59a.75.75 0 1 0 1.06 1.061l1.591-1.59ZM21.75 12a.75.75 0 0 1-.75.75h-2.25a.75.75 0 0 1 0-1.5H21a.75.75 0 0 1 .75.75ZM17.834 18.894a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 1 0-1.061 1.06l1.59 1.591ZM12 18a.75.75 0 0 1 .75.75V21a.75.75 0 0 1-1.5 0v-2.25A.75.75 0 0 1 12 18ZM7.758 17.303a.75.75 0 0 0-1.061-1.06l-1.591 1.59a.75.75 0 0 0 1.06 1.061l1.591-1.59ZM6 12a.75.75 0 0 1-.75.75H3a.75.75 0 0 1 0-1.5h2.25A.75.75 0 0 1 6 12ZM6.697 7.757a.75.75 0 0 0 1.06-1.06l-1.59-1.591a.75.75 0 0 0-1.061 1.06l1.59 1.591Z"></path>
      </svg>
    </span>

    <!-- Moon Icon (Right) -->
    <span class="relative z-10 w-8 flex justify-center text-gray-500 dark:text-gray-900 transition-colors duration-200">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-4" aria-hidden="true">
        <path fill-rule="evenodd" d="M9.528 1.718a.75.75 0 0 1 .162.819A8.97 8.97 0 0 0 9 6a9 9 0 0 0 9 9 8.97 8.97 0 0 0 3.463-.69.75.75 0 0 1 .981.98 10.503 10.503 0 0 1-9.694 6.46c-5.799 0-10.5-4.7-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 0 1 .818.162Z" clip-rule="evenodd"></path>
      </svg>
    </span>
  </button>
</theme-toggle>

<script type="module">class c extends HTMLElement{constructor(){super();const e=this.querySelector("button");document.documentElement.dataset.theme==="dark"&&e?.setAttribute("aria-checked","true"),e?.addEventListener("click",()=>{const t=document.documentElement.dataset.theme==="dark",n=t?"light":"dark";document.documentElement.dataset.theme=n,localStorage.setItem("starlight-theme",n),e.setAttribute("aria-checked",String(!t))})}}customElements.define("theme-toggle",c);</script>
    <a href="/talk-to-us" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-9 rounded-md px-3 max-lg:hidden lg:inline-flex shadow-sm bg-gray-900 text-white hover:bg-gray-800 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-100 astro-nbjqtabl" aria-label="Talk to Us" tabindex="0" role="link">
      Talk to Us
    </a>
  </div>

  <!-- Mobile Menu Button - hamburger cuando cerrado, X (plusIcon rotate-45) cuando abierto, como archie.com -->
  <button type="button" class="mobile-menu-btn relative inline-flex lg:hidden items-center justify-center min-w-[44px] min-h-[44px] p-2 -me-1 sm:me-0 transition-colors duration-200 text-gray-900 dark:text-white hover:text-gray-600 dark:hover:text-gray-300 astro-nbjqtabl" aria-controls="mobile-menu" aria-expanded="false" id="mobile-menu-button">
    <span class="sr-only astro-nbjqtabl">Open main menu</span>
    <!-- Hamburger: visible cuando menú cerrado -->
    <svg class="menu-icon-open block h-6 w-6 transition-opacity duration-200 astro-nbjqtabl" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1" viewBox="0 0 24 24">
      <use href="/sprite.svg#menuIcon" class="astro-nbjqtabl"></use>
    </svg>
    <!-- X (plusIcon rotate-45): visible cuando menú abierto -->
    <svg class="menu-icon-close absolute inset-0 m-auto block h-6 w-6 rotate-45 opacity-0 pointer-events-none transition-opacity duration-200 astro-nbjqtabl" aria-hidden="true" fill="currentColor" stroke="none" viewBox="0 0 24 24">
      <use href="/sprite.svg#plusIcon" class="astro-nbjqtabl"></use>
    </svg>
  </button>
</div>
    </div>
  </div>

  <!-- NavMobile fuera del flex para evitar overflow; position:fixed lo posiciona sobre viewport -->
<!-- Mobile menu - slide desde derecha + blur como archie.com --><div id="mobile-menu" class="fixed inset-0 z-[9999] flex flex-col bg-gray-900/95 backdrop-blur-lg transform translate-x-full transition-transform duration-300 ease-in-out">
  <div class="flex items-center justify-between px-6 pt-6">
    <!-- Logo (dimensiones como archie.com mobile) -->
    <a href="/" data-home-link="true" aria-label="Archie Home" class="text-brand-primary">
      <img src="/images/ArchieCoreBlack.svg" alt="header.logo_alt" class="w-[90px] h-[22px] md:w-[110px] md:h-[22px] lg:w-[127px] lg:h-[24px] mt-[-2px] lg:mt-0">
    </a>
    <!-- Close button (plusIcon rotate-45 = X, como archie.com) -->
    <button type="button" aria-label="Close menu" id="close-mobile-menu" class="p-2 text-gray-400 hover:text-white focus:outline-none transition-colors duration-200">
      <svg class="block h-7 w-7 rotate-45 transition-transform duration-200" fill="currentColor" stroke="none" viewBox="0 0 24 24" aria-hidden="true">
        <use href="/sprite.svg#plusIcon"></use>
      </svg>
    </button>
  </div>

  <div class="flex flex-col items-center px-6 mt-6 flex-1 min-h-0 overflow-y-auto">
    <!-- Mobile Navigation -->
    <nav class="flex flex-col w-full gap-2 mb-4">
      <div>
            <a href="/" class="text-lg font-medium py-1 focus:outline-none transition-colors duration-200 text-white" tabindex="0" aria-current="page">
                Home
              </a>
          </div><div>
            <a href="/api-explorer" class="text-lg font-medium py-1 focus:outline-none transition-colors duration-200 text-white hover:text-gray-300" tabindex="0">
                Documentation
              </a>
          </div><div>
            <div class="relative">
                <button type="button" class="w-full flex items-center justify-between text-lg font-medium py-1 text-white hover:text-gray-300 focus:outline-none transition-colors duration-200 cursor-pointer" onclick="this.nextElementSibling.classList.toggle('hidden'); this.querySelector('svg').classList.toggle('rotate-180')">
                  Reference
                  <svg class="w-4 h-4 transition-transform duration-200" fill="none" viewBox="0 0 24 24" stroke="currentColor">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
                  </svg>
                </button>
                <div class="hidden ps-4 flex flex-col gap-2 mt-2">
                  <a href="/overview" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Overview
                    </a><a href="/non-technical-overview" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Non-Technical User Overview
                    </a><a href="/getting-started" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Getting Started
                    </a><a href="/data-model" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Data Model
                    </a><a href="/environments" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Environments
                    </a><a href="/api-explorer" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      API Explorer
                    </a><a href="/sql-playground" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      SQL Playground
                    </a><a href="/integrations" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Integrations
                    </a><a href="/app-services" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      App Services
                    </a><a href="/settings" class="text-base text-gray-300 hover:text-white transition-colors duration-200">
                      Settings
                    </a>
                </div>
              </div>
          </div>
    </nav>

    <!-- Talk to Us al final (enlace normal como archie.com) -->
    <a href="/talk-to-us" class="text-lg font-medium py-1 text-white hover:text-gray-300 focus:outline-none transition-colors duration-200 mt-2" tabindex="0">
            Talk to Us
          </a>
  </div>
</div>

  <script type="module">const a=()=>{const t=document.querySelector(".navbar")?.parentElement??document.querySelector(".page .header"),o=document.querySelector(".sidebar-nav");if(!t)return;t.classList.add("transition-all","duration-300","ease-in-out"),(window.pageYOffset??Math.max(document.documentElement?.scrollTop??0,document.body?.scrollTop??0))>10?(t.classList.add("navbar-scrolled"),o?.classList.add("navbar-scrolled")):(t.classList.remove("navbar-scrolled"),o?.classList.remove("navbar-scrolled"))};window.addEventListener("scroll",a);const e=()=>{a(),requestAnimationFrame(()=>a()),[0,50,100,200,400,600,1e3,1500,2500].forEach(n=>setTimeout(a,n)),typeof requestIdleCallback=="function"&&requestIdleCallback(()=>a(),{timeout:3e3})};document.readyState==="loading"?(document.addEventListener("DOMContentLoaded",e),window.addEventListener("load",e),window.addEventListener("load",()=>setTimeout(e,1200))):(e(),document.readyState!=="complete"?(window.addEventListener("load",e),window.addEventListener("load",()=>setTimeout(e,1200))):setTimeout(e,1200));document.addEventListener("astro:page-load",()=>{e(),setTimeout(e,50),setTimeout(e,200),setTimeout(e,500),setTimeout(e,1200)});document.addEventListener("astro:after-swap",e);window.addEventListener("pageshow",()=>{e(),setTimeout(e,100),setTimeout(e,500)});const c=document.querySelectorAll(".nav-dropdown > .nav-link");c.forEach(n=>{n?.addEventListener("click",t=>{t?.target?.closest(".nav-item")?.classList.toggle("active")})});const l=n=>{const t=n.target,o=document.getElementById("mobile-menu-button");if(!o)return;const i=d=>{o.setAttribute("aria-expanded",String(d)),document.body.toggleAttribute("data-mobile-menu-expanded",d)};if(t.id==="mobile-menu-button"||t.closest("#mobile-menu-button")){n.stopPropagation();const d=document.body.hasAttribute("data-mobile-menu-expanded");i(!d)}else(t.id==="close-mobile-menu"||t.closest("#close-mobile-menu"))&&i(!1)},s=()=>{document.removeEventListener("click",l),document.addEventListener("click",l)},r=n=>{if(n.code==="Escape"){const t=document.getElementById("mobile-menu-button");t&&(t.setAttribute("aria-expanded","false"),document.body.removeAttribute("data-mobile-menu-expanded"))}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{s(),window.addEventListener("keydown",r)}):(s(),window.addEventListener("keydown",r));document.addEventListener("astro:page-load",s);document.addEventListener("astro:after-swap",s);</script>
</nav>
    </header>
    <div class="main-frame">
      <div class="container flex relative">
        <nav class="sidebar print:hidden" aria-label="Documentation navigation">
  <div id="starlight__sidebar" class="sidebar-pane">
    <div class="sidebar-content sl-flex flex flex-col h-full">
      <div class="flex-1 min-h-0 overflow-y-auto">
        <ul class="top-level astro-6srjw6so">
  <li class="astro-6srjw6so">
          <div class="first-item-row astro-6srjw6so">
                <a href="/overview" aria-current="false" class="large overview astro-6srjw6so">
                  
                  <span class="astro-6srjw6so">Overview</span>
                  
                </a>
                <button type="button" class="collapse-expand-btn astro-6srjw6so" aria-label="Expand all sections" title="Expand all sections" data-action="expand">
                  <svg class="icon-expand astro-6srjw6so" width="20" height="22" viewBox="0 0 24 26" fill="none" aria-hidden="true">
                    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.2929 3.48454C11.6834 3.07129 12.3166 3.07129 12.7071 3.48454L17.7071 8.77553C18.0976 9.18878 18.0976 9.8588 17.7071 10.2721C17.3166 10.6853 16.6834 10.6853 16.2929 10.2721L12 5.72932L7.70711 10.2721C7.31658 10.6853 6.68342 10.6853 6.29289 10.2721C5.90237 9.8588 5.90237 9.18878 6.29289 8.77553L11.2929 3.48454ZM6.29289 15.1247C6.68342 14.7115 7.31658 14.7115 7.70711 15.1247L12 19.6675L16.2929 15.1247C16.6834 14.7115 17.3166 14.7115 17.7071 15.1247C18.0976 15.538 18.0976 16.208 17.7071 16.6212L12.7071 21.9122C12.3166 22.3255 11.6834 22.3255 11.2929 21.9122L6.29289 16.6212C5.90237 16.208 5.90237 15.538 6.29289 15.1247Z" fill="currentColor" class="astro-6srjw6so"></path>
                  </svg>
                  <svg class="icon-collapse astro-6srjw6so" width="20" height="22" viewBox="0 0 24 26" fill="none" aria-hidden="true">
                    <path fill-rule="evenodd" clip-rule="evenodd" d="M6.29289 3.48454C6.68342 3.07129 7.31658 3.07129 7.70711 3.48454L12 8.02727L16.2929 3.48454C16.6834 3.07129 17.3166 3.07129 17.7071 3.48454C18.0976 3.89779 18.0976 4.5678 17.7071 4.98106L12.7071 10.2721C12.3166 10.6853 11.6834 10.6853 11.2929 10.2721L6.29289 4.98106C5.90237 4.5678 5.90237 3.89779 6.29289 3.48454ZM12 17.3695L7.70711 21.9122C7.31658 22.3255 6.68342 22.3255 6.29289 21.9122C5.90237 21.499 5.90237 20.829 6.29289 20.4157L11.2929 15.1247C11.6834 14.7115 12.3166 14.7115 12.7071 15.1247L17.7071 20.4157C18.0976 20.829 18.0976 21.499 17.7071 21.9122C17.3166 22.3255 16.6834 22.3255 16.2929 21.9122L12 17.3695Z" fill="currentColor" class="astro-6srjw6so"></path>
                  </svg>
                </button>
              </div>
        </li><li class="astro-6srjw6so">
          <a href="/non-technical-overview" aria-current="false" class="large astro-6srjw6so">
                
                <span class="astro-6srjw6so">Non-Technical User Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/getting-started" aria-current="false" class="large astro-6srjw6so">
                
                <span class="astro-6srjw6so">Getting Started</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="3" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Data Model</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/data-model" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="3-1" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Data Builder</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="3-1-0" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Fields</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/boolean" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Boolean Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/date" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Date Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/jsonb" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">JSONB Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/number" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Number Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/relationship" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Relationship Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/text" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Text Field</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/fields/uuid" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">UUID Field</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/data-type" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Data Types</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-builder/view" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Views</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="3-2" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Data Viewer</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/data-model/data-viewer/exporting-data" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Exporting Data</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/data-model/data-viewer/importing-data" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Importing Data</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="3-3" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Table Settings</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/data-model/settings/table-indexes" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Table Indexes</span>
                
              </a>
        </li>
</ul>



            </details>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="4" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Environments</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/environments" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/creating-environments" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Creating Environments</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/deleting-environments" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Deleting Environments</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/environment-diff" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Environment Diff</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/environment-tree" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Environment Tree</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/merge" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Environment Merge</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/environments/backups" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Backups</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="5" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">API Explorer</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/api-explorer" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="5-1" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">GraphQL API</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="5-1-0" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Queries</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/aggregation-query" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Simple Aggregation</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/combining-arguments" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Combining Arguments</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/combining-queries" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Combining Queries</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/filtered-list-queries" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Filtered List Queries</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/grouping-and-aggregations" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Grouping and Aggregations</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/paginated-query-result" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Pagenated Queries</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/record-list-query" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Record List Query</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/single-record-query" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Single Record Query</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/queries/sort-list-queries" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Sort List Queries</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="5-1-1" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Mutations</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/mutations/multiple-record-mutations" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Mutating Multiple Records</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/mutations/single-record-mutations" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Mutating Individual Records</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="5-1-2" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Subscriptions</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/subscriptions/complex-record-subscriptions" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Complex Record Subscriptions</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/subscriptions/simple-record-subscriptions" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Simple Record Subscriptions</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <a href="/api-explorer/graphql-api/variables" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Variables</span>
                
              </a>
        </li>
</ul>



            </details>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <a href="/sql-playground" aria-current="false" class="large astro-6srjw6so">
                
                <span class="astro-6srjw6so">SQL Playground</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="7" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Integrations</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/integrations" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/integrations/sendgrid" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">SendGrid</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/integrations/shopify" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Shopify</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/integrations/slack" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Slack</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/integrations/stripe" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Stripe</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/integrations/twilio" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Twilio</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="8" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">App Services</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/app-services" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/app-services/custom-api-gateway" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Custom API Gateway</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/app-services/authentication-providers" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Authentication Providers</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/app-services/file-manager" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">File Manager</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/app-services/roles" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Roles (RBAC)</span>
                
              </a>
        </li>
</ul>



            </details>
        </li><li class="astro-6srjw6so">
          <details data-sidebar-section data-sidebar-section-id="9" open class="astro-6srjw6so">
              <summary class="astro-6srjw6so">
                <div class="group-label astro-6srjw6so">
                  

                  
                  <span class="large astro-6srjw6so">Settings</span>

                  
                </div>
                
	<svg aria-hidden="true" class="caret astro-6srjw6so astro-zqlx2vdz" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg>



              </summary>
              <ul class="astro-6srjw6so">
  <li class="astro-6srjw6so">
          <a href="/settings" aria-current="false" class="overview astro-6srjw6so">
                
                <span class="astro-6srjw6so">Overview</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/settings/api-keys" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">API Keys</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/settings/environment-variables" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Environment Variables</span>
                
              </a>
        </li><li class="astro-6srjw6so">
          <a href="/settings/network" aria-current="false" class="astro-6srjw6so">
                
                <span class="astro-6srjw6so">Network Settings</span>
                
              </a>
        </li>
</ul>



            </details>
        </li>
</ul>


<script type="module">const f="archie-sidebar-sections-state";function o(e){const t=e??document.querySelector(".sidebar-content")??document.querySelector("[class*='sidebar']")??document;return t instanceof Element?t.querySelectorAll("details[data-sidebar-section]"):document.querySelectorAll("details[data-sidebar-section]")}function i(){try{const e=o(),t={};e.forEach(n=>{const s=n.getAttribute("data-sidebar-section-id");s&&(t[s]=n.hasAttribute("open"))}),sessionStorage.setItem(f,JSON.stringify(t))}catch{}}function b(){try{const e=sessionStorage.getItem(f);if(!e)return;const t=JSON.parse(e);o().forEach(s=>{const a=s.getAttribute("data-sidebar-section-id");a&&a in t&&(t[a]?s.setAttribute("open",""):s.removeAttribute("open"))})}catch{}}function p(){const e=document.querySelector("#starlight__sidebar")??document.querySelector(".sidebar-content");if(!e)return;const t=e.querySelector('a[aria-current="page"]');if(!t)return;let n=t;for(;n&&e.contains(n);)n instanceof HTMLDetailsElement&&n.hasAttribute("data-sidebar-section")&&n.setAttribute("open",""),n=n.parentElement}function c(){document.querySelectorAll(".collapse-expand-btn").forEach(e=>{const t=e.closest(".sidebar-content")??e.closest("[class*='sidebar']")??document,n=o(t),s=Array.from(n).some(a=>a.hasAttribute("open"));e.setAttribute("data-action",s?"collapse":"expand"),e.setAttribute("aria-label",s?"Collapse all sections":"Expand all sections"),e.setAttribute("title",s?"Collapse all sections":"Expand all sections")})}function d(){i(),c()}function u(e){const t=e.target;if(!(t instanceof Element))return;t.closest("summary")?.closest("details[data-sidebar-section]")&&setTimeout(()=>{i(),c()},0)}function E(){b(),p(),i(),c(),document.removeEventListener("click",u),document.addEventListener("click",u),o().forEach(e=>{e.removeEventListener("toggle",d),e.addEventListener("toggle",d)}),document.removeEventListener("click",m),document.addEventListener("click",m)}function m(e){const t=e.target.closest(".collapse-expand-btn");if(!t)return;const n=t.closest(".sidebar-content")??t.closest("[class*='sidebar']")??document,s=o(n),a=t.getAttribute("data-action");a==="expand"?s.forEach(r=>r.setAttribute("open","")):a==="collapse"&&s.forEach(r=>r.removeAttribute("open")),i(),c()}function l(){E()}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",l):l();document.addEventListener("astro:page-load",l);</script>
      </div>
      <div class="sidebar-footer mt-auto pt-6 pb-4 border-t border-[var(--sl-color-hairline)] shrink-0">
        <a href="/talk-to-us" class="block text-[var(--sl-color-white)] hover:text-[var(--color-brand-accentCore)] font-medium py-2 transition-colors">
          Talk to Us
        </a>
        <nav class="flex flex-wrap gap-x-4 gap-y-2 mt-4 text-sm text-[var(--sl-color-gray-3)]" aria-label="Footer navigation">
          <a href="/terms-of-service" class="hover:text-[var(--sl-color-white)] transition-colors">
            Terms of Service
          </a>
          <a href="/privacy-policy" class="hover:text-[var(--sl-color-white)] transition-colors">
            Privacy Policy
          </a>
        </nav>
        <div class="flex items-center gap-3 mt-4">
          <a href="https://www.linkedin.com/company/archie" target="_blank" rel="noopener noreferrer" class="text-[var(--sl-color-gray-3)] hover:text-[var(--sl-color-white)] transition-colors" aria-label="LinkedIn">
            <svg class="w-5 h-5" aria-hidden="true">
              <use href="/sprite.svg#linkedinLogo"></use>
            </svg>
          </a>
          <a href="https://discord.gg/3jYtBYapyd" target="_blank" rel="noopener noreferrer" class="text-[var(--sl-color-gray-3)] hover:text-[var(--sl-color-white)] transition-colors" aria-label="Discord">
            <svg class="w-5 h-5" aria-hidden="true">
              <use href="/sprite.svg#discordLogo"></use>
            </svg>
          </a>
        </div>
      </div>
    </div>
  </div>
</nav>
        <div class="flex-1">
          <section>
  <div class="flex flex-col items-center justify-center bg-transparent relative z-10 px-4 sm:px-0 mt-20">
    <div class="hero-background relative w-full overflow-hidden" style="background-image: url('/shapes.webp'); background-size: cover; background-position: center; background-repeat: no-repeat;">
      <div class="hero-container flex flex-col items-center justify-center text-center max-w-5xl mx-auto px-4 w-full pt-16 pb-16 md:pt-[120px] md:pb-[168px]">
  <h1 class="text-6xl font-medium leading-none tracking-normal mb-6 text-center align-middle text-[#1A202C] dark:text-white">
    <span class="text-[#D64A31] block mb-2">The AI-Native Cloud Backend</span>
    <span>Ship production-grade instantly</span>
  </h1>

  <p class="text-2xl font-normal leading-snug tracking-normal text-center text-[#686f7d] dark:text-gray-300 max-w-5xl mx-auto mb-10">
    Archie Core is the next-generation cloud backend powering Archie. Designed from day one for AI, automation, and modern builders who expect infrastructure to keep up with ideas.
  </p>

  <div class="flex flex-col sm:flex-row items-stretch sm:items-center gap-4 sm:gap-6 w-full sm:max-w-md">
    <a href="/overview" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-background dark:bg-[#31373f] dark:text-[#dfe2e7] hover:bg-accent hover:text-accent-foreground h-11 px-8 py-2 flex-1">
      <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5 mr-2">
        <path stroke-linecap="round" stroke-linejoin="round" d="M12 6.042A8.967 8.967 0 006 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 016 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 016-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0018 18a8.967 8.967 0 00-6 2.292m0-14.25v14.25"></path>
      </svg>
      Read Documentation
    </a>

    <a href="https://www.archie.com/" target="_blank" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium bg-[#2D3748] hover:bg-[#1A202C] dark:bg-white dark:hover:bg-gray-200 text-white dark:text-gray-900 h-11 px-8 py-2 transition-colors duration-200 flex-1">
      <svg class="w-5 h-5 mr-2 -ml-1" aria-hidden="true" fill="currentColor" viewBox="0 0 24 24">
        <use href="/sprite.svg#archieIcon"></use>
      </svg>
      Try Archie
    </a>
  </div>
</div>
      <div class="hero-image-section w-full max-w-[1236px] mx-auto px-4 mt-12 md:mt-16 mb-16 md:mb-[136px]">
  <!-- Main Hero Image -->
  <div class="w-full mb-20">
    <img src="/images/homepage/hero.webp" alt="Archie Core Interface" class="w-full h-auto object-cover" width="1236" height="800" fetchpriority="high">
  </div>

  <!-- Three Column Text Section -->
  <div class="grid grid-cols-1 md:grid-cols-4 gap-6 md:gap-8 items-start text-start px-4">
    <div class="col-span-1">
      <h2 class="text-[40px] md:text-[64px] font-light leading-[1.13] tracking-normal text-start text-[#ff8205] line-through decoration-[#ff8205]">
        It’s not a toolkit.
      </h2>
    </div>
    <div class="col-span-1">
      <h2 class="text-[40px] md:text-[64px] font-light leading-[1.13] tracking-normal text-start text-[#ff8205] line-through decoration-[#ff8205]">
        It’s not a pile of services.
      </h2>
    </div>
    <div class="col-span-1 md:col-span-2">
      <h2 class="text-[40px] md:text-[64px] font-light leading-[1.13] tracking-normal text-start text-[#D64A31]">
        It’s a backend that understands intent.
      </h2>
    </div>
  </div>
</div>
    </div>
    <div class="baas-section w-full max-w-[1236px] mx-auto px-4 pt-12 pb-16 md:pt-[72px] md:pb-[136px]">
  <!-- Section Header -->
  <div class="flex flex-col items-center justify-center text-center mb-[72px]">
    <h2 class="text-[40px] md:text-[64px] font-medium leading-normal text-center text-[#1A202C] dark:text-white max-w-5xl mx-auto mb-6">
      Archie Core is an AI-Native Backend-as-a-Service (BaaS)
    </h2>
    <p class="text-[18px] md:text-[24px] font-normal leading-[1.33] text-center text-[#686f7d] dark:text-gray-300 max-w-5xl mx-auto">
      Built for modern teams using AI to design, manage, and scale their backend-complete with real APIs, built-in security, and production-ready integrations from day one.
    </p>
  </div>

  <!-- Cards Grid -->
  <div class="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-8">
    <div class="border-2 border-[#D83F3799] bg-[#D8402F0A] dark:bg-gray-800 rounded-xl flex flex-col h-full transition-shadow overflow-hidden p-[24px] gap-6">
  <div class="w-full flex justify-center items-center">
    <img src="/images/homepage/ai-first.webp" alt="AI-First by Design" class="w-full h-auto object-contain">
  </div>
  <div class="mt-auto">
    <h3 class="text-[20px] md:text-[24px] font-semibold leading-[1.33] text-start text-[#222a34] dark:text-white mb-3 flex items-center gap-3">
      AI-First by Design
      
    </h3>
    <p class="text-[14px] md:text-[16px] font-normal leading-[1.5] text-start text-[#686f7d] dark:text-gray-400">
      Archie Core isn&#39;t AI-assisted, it&#39;s AI-native. Use natural language to explore data, shape APIs, and extend logic.
    </p>
  </div>
</div><div class="border-2 border-[#D83F3799] bg-[#D8402F0A] dark:bg-gray-800 rounded-xl flex flex-col h-full transition-shadow overflow-hidden p-[24px] gap-6">
  <div class="w-full flex justify-center items-center">
    <img src="/images/homepage/cloud-agnostic.webp" alt="Cloud-Agnostic" class="w-full h-auto object-contain">
  </div>
  <div class="mt-auto">
    <h3 class="text-[20px] md:text-[24px] font-semibold leading-[1.33] text-start text-[#222a34] dark:text-white mb-3 flex items-center gap-3">
      Cloud-Agnostic
      <span class="text-[10px] md:text-[12px] font-medium leading-normal text-start text-[#686f7d] bg-[#f1f5f9] dark:bg-gray-700 px-2 py-0.5 rounded-full inline-block">
            Coming Soon
          </span>
    </h3>
    <p class="text-[14px] md:text-[16px] font-normal leading-[1.5] text-start text-[#686f7d] dark:text-gray-400">
      Run on AWS, GCP, or Azure. Move when you want. Scale how you want. No hostage situations.
    </p>
  </div>
</div><div class="border-2 border-[#D83F3799] bg-[#D8402F0A] dark:bg-gray-800 rounded-xl flex flex-col h-full transition-shadow overflow-hidden p-[24px] gap-6">
  <div class="w-full flex justify-center items-center">
    <img src="/images/homepage/instant-api.webp" alt="Instant APIs, Zero Ceremony" class="w-full h-auto object-contain">
  </div>
  <div class="mt-auto">
    <h3 class="text-[20px] md:text-[24px] font-semibold leading-[1.33] text-start text-[#222a34] dark:text-white mb-3 flex items-center gap-3">
      Instant APIs, Zero Ceremony
      
    </h3>
    <p class="text-[14px] md:text-[16px] font-normal leading-[1.5] text-start text-[#686f7d] dark:text-gray-400">
      Archie Core functions as a GraphQL and REST backend, exposing secure APIs directly from your data model.
    </p>
  </div>
</div><div class="border-2 border-[#D83F3799] bg-[#D8402F0A] dark:bg-gray-800 rounded-xl flex flex-col h-full transition-shadow overflow-hidden p-[24px] gap-6">
  <div class="w-full flex justify-center items-center">
    <img src="/images/homepage/playgrounds.webp" alt="Playgrounds Built In" class="w-full h-auto object-contain">
  </div>
  <div class="mt-auto">
    <h3 class="text-[20px] md:text-[24px] font-semibold leading-[1.33] text-start text-[#222a34] dark:text-white mb-3 flex items-center gap-3">
      Playgrounds Built In
      
    </h3>
    <p class="text-[14px] md:text-[16px] font-normal leading-[1.5] text-start text-[#686f7d] dark:text-gray-400">
      GraphQL and SQL Playgrounds Built In. Explore, test, and reason about your backend in real time.
    </p>
  </div>
</div>
  </div>
</div>
    <div class="features-grid-section w-full max-w-[1236px] mx-auto px-4 pb-16 md:pb-[136px]">
  <!-- Section Header -->
  <div class="flex flex-col items-start justify-start text-start mb-12">
    <p class="text-[18px] font-normal leading-[1.56] tracking-normal text-[#d8402f] mb-4">
      Everything a Modern Backend Needs
    </p>
    <h2 class="text-[36px] font-semibold leading-normal tracking-normal text-[#222a34] dark:text-white max-w-5xl">
      Out of the box, Archie Core provides enterprise-grade system services. No duct tape. No Franken-stack
    </h2>
  </div>

  <!-- Cards Grid -->
  <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8">
    <div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeLockKeyholeIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Authentication
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Secure access across multiple providers with OAuth and email. Centralized enterprise auth.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeSmileIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Role-Based Access Control (RBAC)
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Define roles and granular permissions system-wide. Enforce access policies consistently at scale.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeServerIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      File Storage
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Store and deliver files across leading providers. Secure, scalable, and optimized for performance.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeBlocksIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Integrations
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Connect payments, messaging, and commerce tools instantly. Production-ready integrations out of the box.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeClockIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Realtime
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Sync data live across clients with low latency. Built for collaborative and event-driven apps.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeSquareFunctionIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Custom Functions
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Deploy secure server-side logic on demand. Extend your backend with flexible runtime support.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeDatabaseIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Databases
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Provision high-performance databases in seconds. Reliable, secure, and ready to scale.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeGaugeIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Fastest Performance
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Built for speed from build to production. Ship responsive APIs without operational drag.
    </p>
  </div>
</div><div class="feature-card rounded-[16px] bg-[#F0F2F5] dark:bg-gray-800 p-[24px] flex flex-col items-start relative overflow-hidden h-full">
  
  <div class="absolute inset-0 w-full h-full opacity-100 dark:hidden" style="background-image: url('/images/homepage/pattern_light.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  
  <div class="absolute inset-0 w-full h-full opacity-100 hidden dark:block" style="background-image: url('/images/homepage/pattern_dark.webp'); background-size: 4px; background-repeat: repeat; background-position: top left;">
  </div>

  <div class="w-[40px] h-[40px] rounded-[6px] p-2 bg-[#d8402f] mb-2 flex items-center justify-center relative z-10 shrink-0 text-white opacity-100" aria-hidden="true">
    <svg class="w-full h-full" fill="currentColor" aria-hidden="true">
      <use href="/sprite.svg#homeApiIcon"></use>
    </svg>
  </div>

  <div class="relative z-10 w-full flex flex-col">
    <h3 class="text-[18px] font-semibold leading-[1.56] tracking-[-0.18px] text-[#222a34] dark:text-[#dfe2e7] mb-2 text-start">
      Custom APIs
    </h3>
    <p class="w-full min-w-0 text-[14px] font-normal leading-[1.43] tracking-normal text-[#686f7d] dark:text-gray-400 text-start">
      Enable any GraphQL or REST API directly from your backend. Unify your endpoints.
    </p>
  </div>
</div>
  </div>
</div>
    <section class="custom-logic-section w-full max-w-[1236px] mx-auto px-4 pb-12 md:pb-[92px]" aria-labelledby="custom-logic-title">
  <div class="rounded-[32px] border-[6px] border-solid border-[#d8402f] bg-[#fae6e6] dark:bg-[#2d1f1f] dark:border-[#d8402f]/40 px-6 py-10 md:px-12 md:py-14">
    <div class="flex flex-col items-center text-center mb-10 md:mb-14">
      <p class="text-[18px] font-normal leading-[1.56] text-[#d8402f] mb-3">
        Extensible Without Breaking the Model
      </p>
      <h2 id="custom-logic-title" class="text-[36px] md:text-[40px] font-semibold leading-normal text-[#1A202C] dark:text-white max-w-2xl">
        Need custom logic?
      </h2>
    </div>

    <div class="grid grid-cols-1 gap-0 items-stretch lg:grid-cols-[1fr_1px_1fr]">
      
            <div class="flex flex-col items-center gap-[56px] pr-0 lg:pr-8">
              <div class="w-full min-h-[208px] lg:w-[228.8px] lg:h-[208px] shrink-0 flex items-center justify-center" aria-hidden="true">
                <picture>
                  <source media="(prefers-color-scheme: dark)" srcset="/images/homepage/code-dark.webp">
                  <img src="/images/homepage/code.webp" alt="" class="w-full h-auto max-w-[228.8px] max-h-[208px] object-contain" loading="lazy">
                </picture>
              </div>
              <p class="text-[14px] font-normal leading-[1.43] text-center text-[#222a34] dark:text-gray-300 max-w-[432px]">
                Archie Core is extensible through custom logic, allowing you to implement advanced use cases, integrated with your data.
              </p>
            </div>
            <div class="hidden lg:block w-px min-h-full bg-[#d8402f]/30 shrink-0" aria-hidden="true"></div>
            <div class="flex flex-col items-center gap-[56px] pl-0 lg:pl-8">
              <div class="w-full min-h-[208px] lg:w-[228.8px] lg:h-[208px] shrink-0 flex items-center justify-center" aria-hidden="true">
                <picture>
                  <source media="(prefers-color-scheme: dark)" srcset="/images/homepage/ext-dark.webp">
                  <img src="/images/homepage/ext.webp" alt="" class="w-full h-auto max-w-[228.8px] max-h-[208px] object-contain" loading="lazy">
                </picture>
              </div>
              <p class="text-[14px] font-normal leading-[1.43] text-center text-[#222a34] dark:text-gray-300 max-w-[432px]">
                Your logic lives inside the system, not bolted onto the side. Choose the language that best suits the task including JavaScript, TypeScript, Golang or Python.
              </p>
            </div>
            
    </div>
  </div>
</section>
    <section class="w-full max-w-[1236px] mx-auto px-4 pb-16 md:pb-[136px]">
  <div class="grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6">
    <article class="rounded-[16px] bg-[#faf9f9] dark:bg-[#1f2937] px-6 py-8 md:px-8 md:py-10 flex flex-col items-center text-center" aria-labelledby="info-card-databases-title">
          <div class="flex items-center justify-center gap-3 mb-6 " aria-hidden="true">
            <img src="/images/homepage/PostgreSQL.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy"><img src="/images/homepage/MySQL.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy">
          </div>

          <h3 id="info-card-databases-title" class="text-[20px] font-semibold leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white mb-2">
            Built on Real Databases
          </h3>
          <p class="text-[14px] font-normal leading-[1.43] tracking-normal text-center text-[#686f7d] dark:text-gray-300 max-w-[420px]">
            Choose what works for your team. No proprietary data traps. No fake databases pretending to be SQL.
          </p>
        </article><article class="rounded-[16px] bg-[#faf9f9] dark:bg-[#1f2937] px-6 py-8 md:px-8 md:py-10 flex flex-col items-center text-center" aria-labelledby="info-card-integrations-title">
          <div class="flex items-center justify-center gap-3 mb-6 flex-wrap" aria-hidden="true">
            <img src="/images/homepage/stripe.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy"><img src="/images/homepage/zendesk.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy"><img src="/images/homepage/shopify.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy"><img src="/images/homepage/slack.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy"><img src="/images/homepage/twilio.webp" alt="" class="h-12 w-12 rounded-xl object-contain" loading="lazy">
          </div>

          <h3 id="info-card-integrations-title" class="text-[20px] font-semibold leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white mb-2">
            Native Integrations
          </h3>
          <p class="text-[14px] font-normal leading-[1.43] tracking-normal text-center text-[#686f7d] dark:text-gray-300 max-w-[420px]">
            Archie Core includes first-class, native integrations. These are not plugins, they are native citizens of the platform.
          </p>
        </article>
  </div>
</section>
    <section class="w-full max-w-[1236px] mx-auto px-4 mb-[136px]">
  <div class="flex flex-col items-center text-center">
    <p class="text-[18px] font-normal leading-[1.56] text-[#686f7d] mb-4">
      No &quot;rewrite it later&quot; tax.
    </p>

    <h2 class="text-[56px] md:text-[64px] font-medium leading-[1.08] tracking-[-0.02em] mb-12 md:mb-16">
      <span class="block text-[#d8402f]">
        Enterprise-Grade
      </span>
      <span class="block text-[#222a34] dark:text-white">
        from Day One
      </span>
    </h2>

    <div class="w-full grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4">
      <article class="flex flex-col items-center justify-start px-6 py-4 lg:border-r lg:border-[#e5e7eb] sm:border-r sm:border-[#e5e7eb] lg:border-r">
            <svg class="w-8 h-8 mb-4 text-[#d8402f]" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeCircleCheckIcon"></use>
            </svg>
            <p class="text-[20px] font-medium leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white max-w-[170px]">
              Enterprise-grade CI/CD
            </p>
          </article><article class="flex flex-col items-center justify-start px-6 py-4 lg:border-r lg:border-[#e5e7eb]">
            <svg class="w-8 h-8 mb-4 text-[#d8402f]" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeCircleCheckIcon"></use>
            </svg>
            <p class="text-[20px] font-medium leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white max-w-[170px]">
              Environment isolation
            </p>
          </article><article class="flex flex-col items-center justify-start px-6 py-4 lg:border-r lg:border-[#e5e7eb] sm:border-r sm:border-[#e5e7eb] lg:border-r sm:border-t sm:border-[#e5e7eb] lg:border-t-0">
            <svg class="w-8 h-8 mb-4 text-[#d8402f]" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeCircleCheckIcon"></use>
            </svg>
            <p class="text-[20px] font-medium leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white max-w-[170px]">
              Secure deployments
            </p>
          </article><article class="flex flex-col items-center justify-start px-6 py-4 sm:border-t sm:border-[#e5e7eb] lg:border-t-0">
            <svg class="w-8 h-8 mb-4 text-[#d8402f]" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeCircleCheckIcon"></use>
            </svg>
            <p class="text-[20px] font-medium leading-[1.5] tracking-normal text-center text-[#222a34] dark:text-white max-w-[170px]">
              Production-ready governance
            </p>
          </article>
    </div>
  </div>
</section>
    <section class="w-full max-w-[1236px] mx-auto px-4 pb-12 md:pb-[72px]">
  <div class="rounded-2xl border border-[#2b3442] dark:border-[#c7cfdb] bg-[#1f2937] dark:bg-[#d6dbe5] px-6 py-8 md:px-10 md:py-10">
    <div class="grid grid-cols-1 lg:grid-cols-[1fr_auto] gap-8 lg:gap-10 items-end">
      <div class="max-w-[740px]">
        <p class="text-[18px] font-normal leading-[1.56] text-[#d8402f] dark:text-[#d8402f] mb-4">
          We&#39;re part of something bigger
        </p>

        <h2 class="text-[48px] font-semibold leading-[1.08] tracking-[-0.02em] !text-white dark:!text-[#1B212D] mb-5">
          Archie Core is fully embedded into Archie, our idea-to-application platform.
        </h2>

        <p class="text-[14px] font-normal leading-[1.43] text-[#d1d5db] dark:text-[#1B212D] max-w-[680px]">
          That means your backend isn&#39;t just infrastructure, it&#39;s a living part of the product design, architecture, and evolution process.
        </p>
      </div>

      <nav class="flex flex-col gap-3 w-full lg:w-[220px]" aria-label="Embedded platform actions">
        <a href="https://archie.com" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center rounded-md h-11 px-6 text-[16px] font-medium leading-normal bg-[#d8402f] hover:bg-[#be3528] text-white transition-colors">
          Try Archie
        </a>

        <a href="/overview" class="inline-flex items-center justify-center rounded-md h-11 px-6 text-[16px] font-medium leading-normal bg-[#4b5563] hover:bg-[#5b6675] text-white dark:bg-white/90 dark:hover:bg-white dark:text-[#222a34] transition-colors">
          Developer Docs
        </a>

        <a href="/talk-to-us" class="inline-flex items-center justify-center rounded-md h-11 px-6 text-[16px] font-medium leading-normal bg-[#4b5563] hover:bg-[#5b6675] text-white dark:bg-white/90 dark:hover:bg-white dark:text-[#222a34] transition-colors">
          Request a Demo
        </a>
      </nav>
    </div>
  </div>
</section>
    <section class="w-full max-w-[1236px] mx-auto px-4 pt-[48px] pb-[16px]">
  <div class="flex flex-col gap-4">
    <div class="flex items-center gap-3 text-start">
          <span class="shrink-0 text-[#374151] dark:text-gray-400" aria-hidden="true">
            <svg class="w-5 h-5" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeLifeBuoyIcon"></use>
            </svg>
          </span>
          <span class="text-[16px] font-normal leading-[1.5] text-[#374151] dark:text-gray-400">
            Need Help? 
            <a href="/support" class="text-[#d8402f] font-medium hover:underline cursor-pointer" aria-label="Contact Support">
              Contact Support
            </a>
          </span>
        </div><div class="flex items-center gap-3 text-start">
          <span class="shrink-0 text-[#374151] dark:text-gray-400" aria-hidden="true">
            <svg class="w-5 h-5" fill="currentColor" aria-hidden="true">
              <use href="/sprite.svg#homeBugIcon"></use>
            </svg>
          </span>
          <span class="text-[16px] font-normal leading-[1.5] text-[#374151] dark:text-gray-400">
            Having Trouble? 
            <a href="/support" class="text-[#d8402f] font-medium hover:underline cursor-pointer" aria-label="Report an Issue">
              Report an Issue
            </a>
          </span>
        </div>
  </div>
</section>

    <!-- 
      TODO: Delete these components when NotifyMe is no longer needed.
      They are kept here as a fallback per request.
      
      <ArchieLogo client:load />
      <div class="w-full max-w-md sm:max-w-xl lg:max-w-2xl text-center mb-8">
        <h1 class="text-white text-3xl sm:text-4xl md:text-4xl font-semibold mb-2 md:whitespace-nowrap tracking-normal">
          {t('home.title')}
        </h1>
        <p class="text-base sm:text-lg md:text-xl text-gray-400 mb-2">
          {t('home.subtitle')}
        </p>
      </div>
      
      <NotifyMe  
        client:load
        title={t('home.notify_me.title')}
        subtitle={t('home.notify_me.description')}
        placeholder={t('home.notify_me.placeholder')}
        buttonText={t('home.notify_me.button')}
        successMessage={t('home.notify_me.success')}
        sendingText={t('home.notify_me.sending')}
        emailRequired={t('home.notify_me.email_required')}
        emailInvalid={t('home.notify_me.email_invalid')}
        submissionFailed={t('home.notify_me.submission_failed')}
        tryAgain={t('home.notify_me.try_again')}
      />
    -->
  </div>
</section>
        </div>
      </div>
    </div>
  </div>

  <footer id="site-footer" class="w-full bg-white dark:bg-[#1B212D] ">
  <div class="max-w-[1236px] mx-auto px-4 py-[40px] flex flex-col sm:flex-row items-center justify-between gap-4">
    <nav class="flex flex-wrap items-center justify-center sm:justify-start gap-x-6 gap-y-2" aria-label="Footer navigation">
      <a href="/terms-of-service" class="text-[14px] font-normal leading-[1.5] text-[#b3b3b3] hover:text-[#595959] dark:text-gray-500 dark:hover:text-gray-400 transition-colors">
            Terms of Service
          </a><a href="/privacy-policy" class="text-[14px] font-normal leading-[1.5] text-[#b3b3b3] hover:text-[#595959] dark:text-gray-500 dark:hover:text-gray-400 transition-colors">
            Privacy Policy
          </a>
    </nav>

    <div class="flex items-center gap-6" role="group" aria-label="Social links">
      <a href="https://www.linkedin.com/company/archie" target="_blank" rel="noopener noreferrer" class="text-[#595959] dark:text-gray-400 hover:text-[#374151] dark:hover:text-gray-300 transition-colors" aria-label="LinkedIn">
            <svg class="w-5 h-5" aria-hidden="true">
              <use href="/sprite.svg#linkedinLogo"></use>
            </svg>
          </a><a href="https://discord.gg/3jYtBYapyd" target="_blank" rel="noopener noreferrer" class="text-[#595959] dark:text-gray-400 hover:text-[#374151] dark:hover:text-gray-300 transition-colors" aria-label="Discord">
            <svg class="w-5 h-5" aria-hidden="true">
              <use href="/sprite.svg#discordLogo"></use>
            </svg>
          </a>
    </div>
  </div>
</footer>


    <script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script><astro-island uid="ZWKAS2" prefix="r1" component-url="/assets/CookieConsent.DadWQenh.js" component-export="default" renderer-url="/assets/client.CYfJMTzd.js" props="{&quot;lang&quot;:[0,&quot;en&quot;],&quot;translations&quot;:[0,{&quot;message&quot;:[0,&quot;We use cookies to enhance your experience and analyze our traffic. By continuing to use our site, you consent to our use of cookies.&quot;],&quot;policy&quot;:[0,&quot;Cookie Policy&quot;],&quot;reject&quot;:[0,&quot;Reject All&quot;],&quot;accept&quot;:[0,&quot;Accept All&quot;]}]}" ssr client="load" opts="{&quot;name&quot;:&quot;CookieConsentComponent&quot;,&quot;value&quot;:true}"></astro-island>

    <script>
      function initializeLazyLoading() {
        if (typeof window === "undefined") return;
        const images = document.querySelectorAll("img[data-src]");
        const imageObserver = new IntersectionObserver((entries) => {
          entries.forEach((entry) => {
            if (entry.isIntersecting) {
              const img = entry.target;
              img.src = img.dataset.src || "";
              img.classList.remove("lazy");
              imageObserver.unobserve(img);
            }
          });
        });
        images.forEach((img) => imageObserver.observe(img));
      }

      function optimizeThirdPartyScripts() {
        if (typeof window === "undefined") return;
        const delayedScripts = ["google-analytics", "chat-widget", "feedback-form"];
        const loadDelayedScripts = () => {
          delayedScripts.forEach((scriptId) => {
            const script = document.getElementById(scriptId);
            if (script && script.dataset.src) {
              script.setAttribute("src", script.dataset.src);
              script.removeAttribute("data-src");
            }
          });
        };
        ["click", "scroll", "touchstart"].forEach((event) => {
          document.addEventListener(event, loadDelayedScripts, { once: true });
        });
        setTimeout(loadDelayedScripts, 5000);
      }

      function trackCoreWebVitals() {
        if (typeof window === "undefined") return;
        try {
          new PerformanceObserver((entryList) => {
            const entries = entryList.getEntries();
            const lastEntry = entries[entries.length - 1];
            console.log("LCP:", lastEntry.startTime);
          }).observe({ entryTypes: ["largest-contentful-paint"] });
        } catch (e) {
          console.log("LCP monitoring not supported");
        }
        try {
          new PerformanceObserver((entryList) => {
            const entries = entryList.getEntries();
            entries.forEach((entry) => {
              if (entry.processingStart) {
                console.log("FID:", entry.processingStart - entry.startTime);
              }
            });
          }).observe({ entryTypes: ["first-input"] });
        } catch (e) {
          console.log("FID monitoring not supported");
        }
        try {
          let clsValue = 0;
          new PerformanceObserver((entryList) => {
            for (const entry of entryList.getEntries()) {
              if (entry.value !== undefined && !entry.hadRecentInput) {
                clsValue += entry.value;
              }
            }
            console.log("CLS:", clsValue);
          }).observe({ entryTypes: ["layout-shift"] });
        } catch (e) {
          console.log("CLS monitoring not supported");
        }
      }

      document.addEventListener("DOMContentLoaded", () => {
        initializeLazyLoading();
        optimizeThirdPartyScripts();
        trackCoreWebVitals();
      });
    </script>

    <script>
      (function () {
        if (typeof window === "undefined") return;

        const LANGUAGE_PREFERENCE_KEY = "archie-language-preference";
        const SUPPORTED_LANGUAGES = [
          "en",
          "en-gb",
          "es",
          "fr",
          "fr-ca",
          "it",
          "pt",
          "pt-br",
          "de",
          "nl",
          "pl",
          "tr",
          "ja",
        ];

        function detectLanguageFromUrl() {
          const pathname = window.location.pathname;
          const pathParts = pathname.split("/").filter(Boolean);
          if (pathParts.length > 0) {
            const potentialLang = pathParts[0];
            if (SUPPORTED_LANGUAGES.includes(potentialLang)) {
              return potentialLang;
            }
          }
          return "en";
        }

        function detectBrowserLanguage() {
          if (typeof window === "undefined" || !window.navigator) {
            return "en";
          }
          const browserLanguages = window.navigator.languages || [
            window.navigator.language || "en",
          ];
          const languageMap = {
            en: "en",
            "en-us": "en",
            "en-gb": "en-gb",
            "en-ca": "en",
            "en-au": "en-gb",
            es: "es",
            "es-es": "es",
            "es-mx": "es",
            "es-ar": "es",
            "es-co": "es",
            "es-cl": "es",
            fr: "fr",
            "fr-fr": "fr",
            "fr-ca": "fr-ca",
            "fr-be": "fr",
            "fr-ch": "fr",
            it: "it",
            "it-it": "it",
            "it-ch": "it",
            pt: "pt",
            "pt-pt": "pt",
            "pt-br": "pt-br",
            de: "de",
            "de-de": "de",
            "de-at": "de",
            "de-ch": "de",
            nl: "nl",
            "nl-nl": "nl",
            "nl-be": "nl",
            pl: "pl",
            "pl-pl": "pl",
            tr: "tr",
            "tr-tr": "tr",
            ja: "ja",
            "ja-jp": "ja",
          };
          for (const browserLang of browserLanguages) {
            const normalized = browserLang.toLowerCase().replace("_", "-");
            if (languageMap[normalized]) {
              return languageMap[normalized];
            }
            const baseLang = normalized.split("-")[0];
            if (languageMap[baseLang]) {
              return languageMap[baseLang];
            }
          }
          return "en";
        }

        function saveLanguagePreference() {
          const currentLang = detectLanguageFromUrl();
          const currentPath = window.location.pathname;
          const isEnglishOnlyPage =
            currentPath.includes("/blog") ||
            currentPath === "/faq" ||
            currentPath.startsWith("/faq/");

          if (!isEnglishOnlyPage) {
            try {
              localStorage.setItem(LANGUAGE_PREFERENCE_KEY, currentLang);
              document.cookie = `${LANGUAGE_PREFERENCE_KEY}=${currentLang}; Path=/; Max-Age=31536000; SameSite=Lax`;
            } catch (error) {
              console.warn("Failed to save language preference:", error);
            }
          }
        }

        function getLanguagePreference() {
          try {
            const saved = localStorage.getItem(LANGUAGE_PREFERENCE_KEY);
            if (saved && SUPPORTED_LANGUAGES.includes(saved)) {
              return saved;
            }
          } catch (error) {
            console.warn("Failed to get language preference:", error);
          }
          return null;
        }

        function autoDetectAndRedirect() {
          const currentPath = window.location.pathname;
          if (currentPath !== "/" && currentPath !== "") {
            return;
          }
          const urlLang = detectLanguageFromUrl();
          if (urlLang !== "en") {
            saveLanguagePreference();
            return;
          }
          const savedLang = getLanguagePreference();
          if (savedLang && savedLang !== "en") {
            window.location.href = `/${savedLang}/`;
            return;
          }
          const browserLang = detectBrowserLanguage();
          if (browserLang !== "en") {
            try {
              localStorage.setItem(LANGUAGE_PREFERENCE_KEY, browserLang);
              document.cookie = `${LANGUAGE_PREFERENCE_KEY}=${browserLang}; Path=/; Max-Age=31536000; SameSite=Lax`;
            } catch (error) {
              console.warn("Failed to save language preference:", error);
            }
            window.location.href = `/${browserLang}/`;
          } else {
            saveLanguagePreference();
          }
        }

        function updateHomeLinks() {
          const currentPath = window.location.pathname;
          const isEnglishOnlyPage =
            currentPath.includes("/blog") ||
            currentPath === "/faq" ||
            currentPath.startsWith("/faq/");

          if (!isEnglishOnlyPage) return;
          const savedLang = getLanguagePreference();
          if (!savedLang || savedLang === "en") return;

          const homeLinksByAttr = document.querySelectorAll(
            '[data-home-link="true"]',
          );
          homeLinksByAttr.forEach((link) => {
            link.setAttribute("href", `/${savedLang}`);
          });

          const allLinks = document.querySelectorAll("a[href]");
          allLinks.forEach((link) => {
            const href = link.getAttribute("href");
            if (!href) return;
            const isHomeLink =
              href === "/" ||
              (href.match(/^\/[a-z]{2}(-[a-z]{2})?$/) &&
                SUPPORTED_LANGUAGES.includes(href.replace("/", "")));

            if (isHomeLink) {
              link.setAttribute("href", `/${savedLang}`);
            }
          });
        }

        autoDetectAndRedirect();

        document.addEventListener("DOMContentLoaded", () => {
          saveLanguagePreference();
          updateHomeLinks();
        });

        let lastPath = window.location.pathname;
        const observer = new MutationObserver(() => {
          const currentPath = window.location.pathname;
          if (currentPath !== lastPath) {
            lastPath = currentPath;
            saveLanguagePreference();
            updateHomeLinks();
          }
        });

        observer.observe(document.body, {
          childList: true,
          subtree: true,
        });
      })();
    </script>
  </body>
</html>