CINXE.COM
Vercel Documentation
<!DOCTYPE html><html class="__variable_881a5c __variable_f5b710 uncontained tailwind tailwind-no-preflight" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"/><link rel="preload" href="/vc-ap-vercel-docs/_next/static/media/569ce4b8f30dc480-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/vc-ap-vercel-docs/_next/static/media/93f479601ee12b01.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=3840&q=75 3840w" imageSizes="(max-width: 768px) 100vw, 600px"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=3840&q=75 3840w" imageSizes="(max-width: 768px) 100vw, 600px"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=3840&q=75 3840w" imageSizes="(max-width: 768px) 100vw, 600px"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/e23931f537267d5b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/8604571e2a880759.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/e122c19221bacfe3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/b7d8aa6d16e9a8ba.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/cb7d8ca32d5257d0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/4bec747078d5ac78.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/c589ce71a3a0bc97.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/dc1085e7e696021b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/89a8888cb97a7d81.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/a9d9ee0d8351a1c0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/90db48acd7590ba7.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/68876113637876f1.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/1334fce3c3cb43e3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/219a105f176f472e.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/31d74e8777669b9f.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/02aeb390aa7f3018.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="stylesheet" href="/vc-ap-vercel-docs/_next/static/css/dbeadbd645235116.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/vc-ap-vercel-docs/_next/static/chunks/webpack-c8494a086ef55e2f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG"/><script src="/vc-ap-vercel-docs/_next/static/chunks/4f5c8e49-d1ffe339f7e3725b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/25328-1cca5ab8d53e47d0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/main-app-6301cc4f858e0f44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/5000-caf815feba8ab8ef.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/app/%5BrootFlagsCode%5D/not-found-74639adaa4e2368f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script src="/vc-ap-vercel-docs/_next/static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><meta name="next-size-adjust" content=""/><title>Vercel Documentation</title><meta content="Vercel is a developer cloud to build and deploy web applications." name="description"/><link href="https://vercel.com/docs" rel="canonical"/><meta content="https://vercel.com/docs" property="og:url"/><meta content="Vercel Documentation" property="og:title"/><meta content="Vercel is a developer cloud to build and deploy web applications." property="og:description"/><meta content="https://vercel.com/api/dynamic-og?title=Vercel%20Documentation" property="og:image:url"/><meta content="Vercel Documentation" name="twitter:title"/><meta content="Vercel is a developer cloud to build and deploy web applications." name="twitter:description"/><meta content="summary_large_image" name="twitter:card"/><meta content="https://vercel.com/api/dynamic-og?title=Vercel%20Documentation" name="twitter:image"/><meta name="theme-color" content="#0a0a0a"/><meta name="color-scheme" content="dark light"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="trace-attributes" content="{"next.appdir":true}"/><link rel="shortcut icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/favicon.ico"/><link rel="icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/32x32.png"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-180x180.png"/><script src="/vc-ap-vercel-docs/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" noModule=""></script></head><body><script>((e,t,r,n,o,i,a,s)=>{let u=document.documentElement,l=["light","dark"];function c(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&i?o.map(e=>i[e]||e):o;r?(u.classList.remove(...n),u.classList.add(i&&i[t]?i[t]:t)):u.setAttribute(e,t)}),r=t,s&&l.includes(r)&&(u.style.colorScheme=r)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","zeit-theme","system",null,["light","dark"],{"light":"light-theme","dark":"dark-theme"},true,true)</script><!--$--><!--/$--><!--$--><!--/$--><div class="header_wrapper__b0EEc"><div class="header_header__TSZx7 header_primary__Xrxau" data-navigation-header=""><div class="header_topHeader__qMwEP"><div class="header_leftSection__FNUvw"><div class="header_logoSection__Gs4TB"><a aria-label="Vercel Docs Home" data-testid="header/navbar/logo" data-zone="same" class="link_link__hbWKh" href="/docs"><svg aria-label="Vercel logotype" height="18" role="img" viewBox="0 0 262 52" xmlns="http://www.w3.org/2000/svg"><path d="M59.8019 52L29.9019 0L0.00190544 52H59.8019ZM89.9593 49.6328L114.947 2.36365H104.139L86.9018 36.6921L69.6647 2.36365H58.8564L83.8442 49.6328H89.9593ZM260.25 2.36365V49.6329H251.302V2.36365H260.25ZM210.442 31.99C210.442 28.3062 211.211 25.0661 212.749 22.2699C214.287 19.4737 216.431 17.321 219.181 15.812C221.93 14.3029 225.146 13.5484 228.828 13.5484C232.09 13.5484 235.026 14.2585 237.636 15.6788C240.245 17.0991 242.319 19.2074 243.857 22.0036C245.395 24.7998 246.187 28.2174 246.234 32.2564V34.3202H219.88C220.066 37.2496 220.928 39.5576 222.466 41.2442C224.051 42.8864 226.171 43.7075 228.828 43.7075C230.505 43.7075 232.043 43.2637 233.441 42.376C234.839 41.4883 235.888 40.2899 236.587 38.7808L245.745 39.4466C244.626 42.7754 242.529 45.4385 239.453 47.4358C236.377 49.4331 232.835 50.4317 228.828 50.4317C225.146 50.4317 221.93 49.6772 219.181 48.1681C216.431 46.6591 214.287 44.5064 212.749 41.7102C211.211 38.914 210.442 35.6739 210.442 31.99ZM237.006 28.6612C236.68 25.7762 235.771 23.668 234.28 22.3365C232.789 20.9606 230.971 20.2726 228.828 20.2726C226.358 20.2726 224.354 21.0049 222.816 22.4696C221.278 23.9343 220.322 25.9982 219.95 28.6612H237.006ZM195.347 22.3365C196.838 23.5348 197.77 25.1993 198.143 27.3297L207.371 26.8637C207.044 24.1562 206.089 21.8039 204.505 19.8066C202.92 17.8093 200.869 16.278 198.353 15.2128C195.883 14.1032 193.157 13.5484 190.174 13.5484C186.492 13.5484 183.277 14.3029 180.527 15.812C177.777 17.321 175.634 19.4737 174.096 22.2699C172.558 25.0661 171.789 28.3062 171.789 31.99C171.789 35.6739 172.558 38.914 174.096 41.7102C175.634 44.5064 177.777 46.6591 180.527 48.1681C183.277 49.6772 186.492 50.4317 190.174 50.4317C193.25 50.4317 196.046 49.8769 198.563 48.7673C201.079 47.6133 203.13 45.9933 204.714 43.9072C206.299 41.8212 207.254 39.38 207.58 36.5838L198.283 36.1844C197.957 38.5367 197.048 40.3565 195.557 41.6436C194.065 42.8864 192.271 43.5078 190.174 43.5078C187.285 43.5078 185.048 42.5091 183.463 40.5118C181.879 38.5145 181.086 35.6739 181.086 31.99C181.086 28.3062 181.879 25.4656 183.463 23.4683C185.048 21.471 187.285 20.4723 190.174 20.4723C192.178 20.4723 193.902 21.0937 195.347 22.3365ZM149.955 14.3457H158.281L158.522 21.1369C159.113 19.2146 159.935 17.7218 160.988 16.6585C162.514 15.1166 164.642 14.3457 167.371 14.3457H170.771V21.6146H167.302C165.359 21.6146 163.763 21.8789 162.514 22.4075C161.311 22.9362 160.386 23.7732 159.739 24.9186C159.137 26.064 158.837 27.5178 158.837 29.2799V49.6328H149.955V14.3457ZM111.548 22.2699C110.01 25.0661 109.241 28.3062 109.241 31.99C109.241 35.6739 110.01 38.914 111.548 41.7102C113.086 44.5064 115.229 46.6591 117.979 48.1681C120.729 49.6772 123.944 50.4317 127.626 50.4317C131.634 50.4317 135.176 49.4331 138.252 47.4358C141.327 45.4385 143.425 42.7754 144.543 39.4466L135.385 38.7808C134.686 40.2899 133.638 41.4883 132.24 42.376C130.842 43.2637 129.304 43.7075 127.626 43.7075C124.97 43.7075 122.849 42.8864 121.265 41.2442C119.727 39.5576 118.865 37.2496 118.678 34.3202H145.032V32.2564C144.986 28.2174 144.194 24.7998 142.656 22.0036C141.118 19.2074 139.044 17.0991 136.434 15.6788C133.824 14.2585 130.888 13.5484 127.626 13.5484C123.944 13.5484 120.729 14.3029 117.979 15.812C115.229 17.321 113.086 19.4737 111.548 22.2699ZM133.079 22.3365C134.57 23.668 135.479 25.7762 135.805 28.6612H118.748C119.121 25.9982 120.076 23.9343 121.614 22.4696C123.152 21.0049 125.156 20.2726 127.626 20.2726C129.77 20.2726 131.587 20.9606 133.079 22.3365Z" fill="var(--geist-foreground)"></path></svg></a></div></div><div class="header_rightSection__9_IdE"><div class="flex flex-1 lg:hidden"><div class="cmdklaunch_wrapper__KrfZL"><button class="cmdklaunch_launcher__q063Y" type="button"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:12px"><svg class="cmdklaunch_inputIcon__hiTMv" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:var(--ds-gray-700)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0Z" fill="currentColor"/></svg><span class="cmdklaunch_placeholder__LBF11">Search...</span></div><div class="stack_stack__iZkUS stack cmdklaunch_rightIcon__LA5qd" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:0px"><kbd class="kbd_kbd__tWm25 kbd_small__ZiPfe cmdklaunch_keyboard__lDsZX" data-geist-kbd="" data-version="v1"><span>⌘ K</span></kbd></div></button></div></div><div class="header_avatarContainer__IPKhg"><!--$--><div class="header_avatarWrapper__0M74_"><div class="header_feedback__7JZ1Z"><button type="submit" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Feedback</span></button></div><div class="header_placeholder__TztVN"></div></div><!--/$--></div><!--$--><!--/$--><style> @media (min-width: 951px) { #mobile-menu-toggle { display: none; } } </style><div class="mobile-menu_root__PX9iM" id="mobile-menu-toggle"><button aria-label="Open menu" class="toggle_mobileMenuToggle__W5y02" data-expanded="false" disabled="" style="opacity:0" type="button"><div class="toggle_bar__ySl8w toggle_disabled__4oWP9" data-position="top"></div><div class="toggle_bar__ySl8w toggle_disabled__4oWP9" data-position="bottom"></div></button></div></div></div></div></div><main class="layout_main__N5tYt"><div class="layout_wrapper__IGhij" data-soft-nav-target="1"><aside class="fixed bottom-0 left-0 right-0 z-50 flex max-w-full content-center items-center gap-x-2 border-0 border-t-[1px] border-solid border-t-[var(--accents-2)] bg-[var(--geist-background)] px-[16px] py-[12px] lg:hidden [&_button]:rounded-[8px]"><button type="button" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc flex-1 cursor-pointer rounded-[8px] border-solid border-[var(--accents-2)] bg-transparent p-[8px] outline-[var(--ds-focus-color)] [&>span]:block [&>span]:w-full button_secondary__kMMNc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_"><span class="grid w-full grid-cols-[auto_1fr_auto] items-center gap-[10px]"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.5 3V2.25H1V3V9.25C1 10.2165 1.7835 11 2.75 11H12.4393L10.4697 12.9697L9.93934 13.5L11 14.5607L11.5303 14.0303L14.7803 10.7803C15.0732 10.4874 15.0732 10.0126 14.7803 9.71967L11.5303 6.46967L11 5.93934L9.93934 7L10.4697 7.53033L12.4393 9.5H2.75C2.61193 9.5 2.5 9.38807 2.5 9.25V3Z" fill="currentColor"/></svg><span class="overflow-hidden overflow-ellipsis whitespace-nowrap text-left text-[14px] font-[500] text-[var(--geist-foreground)]">Vercel Documentation</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span></span></button></aside><div class="relative md:grid lg:grid-cols-[300px] motion-safe:[transition-duration:300ms] motion-safe:md:[transition-property:grid-template-columns] motion-safe:ease-[cubic-bezier(0.32,0.72,0,1)] lg:sticky lg:top-[var(--header-height)] lg:h-[calc(100svh-var(--header-height))]"><div class="z-20 text-[14px] text-gray-700 lg:absolute lg:right-0 lg:block lg:h-full motion-safe:duration-300 motion-safe:[transition-property:opacity,filter] motion-safe:ease-[cubic-bezier(0.32,0.72,0,1)] lg:opacity-100 lg:blur-[0px] lg:border lg:border-x-[1px] lg:border-b-0 lg:border-t-0 lg:border-solid lg:border-x-gray-300"><aside class="p-0 lg:relative h-full flex-col lg:flex lg:w-[300px] lg:[border-left:1px_solid_red] hidden [&[open]]:block fixed inset-[unset] bottom-0 left-0 m-0 max-h-[80dvh] min-h-[5dvh] w-full max-w-none rounded-t-[8px] border-0 lg:max-h-none [&:is(dialog)::backdrop]:opacity-0 [&:is(dialog)]:overflow-visible [&:is(dialog)]:border-t-[1px] [&:is(dialog)]:border-gray-300 outline-none [&:is(dialog):not(:has(:is(a,button):hover))_nav]:cursor-grab [&:is(dialog)::after]:bg-background-100 [&:is(dialog)::after]:absolute [&:is(dialog)::after]:inset-0 [&:is(dialog)::after]:w-full [&:is(dialog)::after]:translate-y-full [&:is(dialog)::after]:content-[""] [&:is(dialog)]:touch-none"><div class="hidden px-6 py-6 [border-bottom:1px_solid_var(--ds-gray-300)] lg:block [&>div]:m-0 [&_button]:w-full"><div class="cmdklaunch_wrapper__KrfZL"><button class="cmdklaunch_launcher__q063Y" type="button"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:12px"><svg class="cmdklaunch_inputIcon__hiTMv" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:var(--ds-gray-700)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 6.5C1.5 3.73858 3.73858 1.5 6.5 1.5C9.26142 1.5 11.5 3.73858 11.5 6.5C11.5 9.26142 9.26142 11.5 6.5 11.5C3.73858 11.5 1.5 9.26142 1.5 6.5ZM6.5 0C2.91015 0 0 2.91015 0 6.5C0 10.0899 2.91015 13 6.5 13C8.02469 13 9.42677 12.475 10.5353 11.596L13.9697 15.0303L14.5 15.5607L15.5607 14.5L15.0303 13.9697L11.596 10.5353C12.475 9.42677 13 8.02469 13 6.5C13 2.91015 10.0899 0 6.5 0Z" fill="currentColor"/></svg><span class="cmdklaunch_placeholder__LBF11">Search...</span></div><div class="stack_stack__iZkUS stack cmdklaunch_rightIcon__LA5qd" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:0px"><kbd class="kbd_kbd__tWm25 kbd_small__ZiPfe cmdklaunch_keyboard__lDsZX" data-geist-kbd="" data-version="v1"><span>⌘ K</span></kbd></div></button></div></div><nav class="bg-background-100 lg:bg-transparent h-full outline-0 [clip-path:inset(0_0_0_0_round_8px)] lg:[clip-path:unset] w-full flex-1 overflow-auto overflow-x-hidden px-4 py-3 pl-6 lg:py-3 lg:pr-0"><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div><button aria-controls="menu-9df50168" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-9df50168"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/projects-deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Projects and Deployments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/template"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Use a Template</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/import"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Import Existing Project</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add a Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/buy-domain"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Buy a Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/use-existing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Transfer an Existing Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/collaborate"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Collaborate</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/getting-started-with-vercel/next-steps"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Next Steps</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Supported Frameworks</span></span></a></div><button aria-controls="menu-c2efe0cb" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-c2efe0cb"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/nextjs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Next.js</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/sveltekit"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">SvelteKit</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/astro"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Astro</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/nuxt"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Nuxt</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/vite"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Vite</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/react-router"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">React Router</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/remix"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Remix</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/gatsby"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Gatsby</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/create-react-app"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Create React App</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/frameworks/more-frameworks"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">All Frameworks</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-migration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Incremental Migration</span></span></a></div><button aria-controls="menu-2e3ee489" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-2e3ee489"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-migration/migration-guide"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Migration Guide</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-migration/technical-guidelines"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Technical Guidelines</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/production-checklist"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Production Checklist</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/guides"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Guides</span></span></a></div></div></li></ul><hr class="my-3 w-[calc(100%+2.5rem)] -translate-x-6 border-t-0 border-solid border-gray-300"/><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">AI</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/v0"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">v0</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai-sdk"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">AI SDK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integrations</span></span></a></div><button aria-controls="menu-378d214c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-378d214c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/adding-a-provider"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Adding a Provider</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/adding-a-model"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Adding a Model</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/xai"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">xAI</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/groq"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Groq</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/fal"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">fal</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/deepinfra"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deep Infra</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/elevenlabs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">ElevenLabs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/lmnt"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">LMNT</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/openai"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OpenAI</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/perplexity"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Perplexity</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/pinecone"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pinecone</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/replicate"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Replicate</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ai/togetherai"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Together AI</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Access</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/accounts"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Account Management</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/activity-log"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Activity Log</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deployment Protection</span></span></a></div><button aria-controls="menu-7e00952c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-7e00952c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-bypass-deployment-protection"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Bypass Deployment Protection</span></span></a></div><button aria-controls="menu-34d751aa" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-34d751aa"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Exceptions</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OPTIONS Allowlist</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Protection Bypass for Automation</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sharable Links</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-protect-deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Protect Deployments</span></span></a></div><button aria-controls="menu-db8ad715" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-db8ad715"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-protect-deployments/password-protection"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Password Protection</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-protect-deployments/trusted-ips"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Trusted IPs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Vercel Authentication</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/directory-sync"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Directory Sync</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/saml"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">SAML SSO</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/two-factor-authentication"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Two-factor (2FA)</span></span></a></div></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Build & Deploy</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Builds</span></span></a></div><button aria-controls="menu-34f71b1c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-34f71b1c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/build-features"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Build Features</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/build-image"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Build Image</span></span></a></div><button aria-controls="menu-c513a6d6" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-c513a6d6"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/build-image/build-image"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Build image Node.js versions</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/build-queues"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Build Queues</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/configure-a-build"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Configuring a Build</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/builds/managing-builds"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Builds</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deploy-hooks"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deploy Hooks</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployment-retention"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deployment Retention</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deployments</span></span></a></div><button aria-controls="menu-984c4eb2" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-984c4eb2"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/environments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Environments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/generated-urls"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Generated URLs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/managing-deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Deployments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/promoting-a-deployment"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Promoting Deployments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/troubleshoot-a-build"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Troubleshoot Build Errors</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Accessing Build Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/claim-deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Claim Deployments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/og-preview"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Inspect OG Metadata</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/preview-deployment-suffix"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Preview Deployment Suffix</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/deployments/sharing-deployments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sharing a Preview Deployment</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Environment Variables</span></span></a></div><button aria-controls="menu-d94e3d65" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-d94e3d65"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/framework-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Framework Environment Variables</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/managing-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Environment Variables</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/reserved-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Reserved Environment Variables</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/sensitive-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sensitive Environment Variables</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/shared-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Shared Environment Variables</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/environment-variables/system-environment-variables"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">System Environment Variables</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/git"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Git Integrations</span></span></a></div><button aria-controls="menu-af397dc1" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-af397dc1"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/git/vercel-for-github"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">GitHub</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/git/vercel-for-azure-pipelines"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Azure DevOps</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/git/vercel-for-bitbucket"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Bitbucket</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/git/vercel-for-gitlab"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">GitLab</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/instant-rollback"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Instant Rollback</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monorepos"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Monorepos</span></span></a></div><button aria-controls="menu-bce1a27c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-bce1a27c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monorepos/turborepo"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Turborepo</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monorepos/remote-caching"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Remote Caching</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monorepos/nx"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Nx</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monorepos/monorepo-faq"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Monorepos FAQ</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/package-managers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Package Managers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/protected-git-scopes"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Protected Git Scopes</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/skew-protection"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Skew Protection</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/webhooks"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Webhooks</span></span></a></div><button aria-controls="menu-1a8048fe" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-1a8048fe"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/webhooks/webhooks-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Webhooks API Reference</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">CDN</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/data-cache"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Data Cache</span></span></a></div><button aria-controls="menu-96c17534" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-96c17534"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/data-cache/manage-data-cache"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Manage Data Cache</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Domains</span></span></a></div><button aria-controls="menu-fdfe4cdd" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-fdfe4cdd"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Working with Domains</span></span></a></div><button aria-controls="menu-6dd453fd" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-6dd453fd"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/add-a-domain"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Adding a Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/add-a-domain-to-environment"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Adding a Domain to an Environment</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/assign-domain-to-a-git-branch"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Assigning a Domain to a Git Branch</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/deploying-and-redirecting"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deploying & Redirecting Domains</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/remove-a-domain"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Removing a Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/renew-a-domain"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Renewing a Domain</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/transfer-your-domain"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Transferring Domains</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-domains/view-and-search-domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Viewing & Searching Domains</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-dns"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Working with DNS</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/managing-dns-records"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing DNS Records</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-nameservers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Working with Nameservers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/managing-nameservers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Nameservers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/working-with-ssl"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Working with SSL</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/custom-SSL-certificate"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Custom SSL Certificates</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/supported-domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Supported Domains</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/domains/troubleshooting"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Troubleshooting Domains</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-cache"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Cache</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-network"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Network</span></span></a></div><button aria-controls="menu-094f998c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-094f998c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-network/regions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Regions</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-network/compression"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Compression</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-network/manage-usage"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Manage Usage</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/encryption"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Encryption</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/headers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Headers</span></span></a></div><button aria-controls="menu-b507172a" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-b507172a"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/headers/security-headers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Security Headers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/headers/cache-control-headers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Cache-Control Headers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/headers/request-headers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Request Headers</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/headers/response-headers"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Response Headers</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/image-optimization"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Image Optimization</span></span></a></div><button aria-controls="menu-f0da8254" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-f0da8254"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/image-optimization/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/image-optimization/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits and Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/image-optimization/managing-image-optimization-costs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Usage & Costs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/image-optimization/legacy-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Legacy Pricing</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/redirects"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Redirects</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rewrites"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Rewrites</span></span></a></div></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Collaboration</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/comments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Comments</span></span></a></div><button aria-controls="menu-31c22b7c" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-31c22b7c"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/comments/how-comments-work"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Enabling Comments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/comments/using-comments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using Comments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/comments/managing-comments"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Comments</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/comments/integrations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integrations</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/draft-mode"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Draft Mode</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edit-mode"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edit Mode</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Feature Flags</span></span></a></div><button aria-controls="menu-13db75db" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-13db75db"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/flags-explorer"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Flags Explorer</span></span></a></div><button aria-controls="menu-d6f646a5" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-d6f646a5"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/flags-explorer/getting-started"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/flags-explorer/reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Reference</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/feature-flags-pattern"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Flags SDK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/integrate-with-runtime-logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">With Runtime Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/integrate-vercel-platform"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">With Vercel Platform</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/feature-flags/integrate-with-web-analytics"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">With Web Analytics</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Toolbar</span></span></a></div><button aria-controls="menu-fcea4c56" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-fcea4c56"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/in-production-and-localhost"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add to Environments</span></span></a></div><button aria-controls="menu-01cdbe2d" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-01cdbe2d"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add to Localhost</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/in-production-and-localhost/add-to-production"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add to Production</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/managing-toolbar"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Toolbar</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/browser-extension"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Browser Extensions</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/accessibility-audit-tool"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Accessibility Audit Tool</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/interaction-timing-tool"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Interaction Timing Tool</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-toolbar/layout-shift-tool"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Layout Shift Tool</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Compute</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cron-jobs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Cron Jobs</span></span></a></div><button aria-controls="menu-ef741b49" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-ef741b49"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cron-jobs/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cron-jobs/manage-cron-jobs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Cron Jobs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cron-jobs/usage-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Usage & Pricing</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Functions</span></span></a></div><button aria-controls="menu-22254a95" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-22254a95"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/streaming-functions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Streaming</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/fluid-compute"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Fluid Compute</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Runtimes</span></span></a></div><button aria-controls="menu-ff2e05f3" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-ff2e05f3"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/node-js"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Node.js</span></span></a></div><button aria-controls="menu-f06a39ac" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-f06a39ac"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/node-js/advanced-node-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Advanced Node.js Usage</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/node-js/node-js-versions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Supported Node.js versions</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/python"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Python</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/go"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="sr-only">Go Runtime</span><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Go</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/ruby"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Ruby</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/wasm"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Wasm</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/edge"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Runtime</span></span></a></div><button aria-controls="menu-572d9687" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-572d9687"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/runtimes/edge/edge-functions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Functions</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Configuring Functions</span></span></a></div><button aria-controls="menu-376bade4" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-376bade4"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions/duration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Duration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions/memory"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Memory</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions/runtime"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Runtime</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions/region"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Region</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/configuring-functions/advanced-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Advanced Configuration</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/functions-api-reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">API Reference</span></span></a></div><button aria-controls="menu-9f2540cd" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-9f2540cd"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/functions-api-reference/vercel-functions-package"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">@vercel/functions</code></span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/limitations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/usage-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Usage & Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/functions/concurrency-scaling"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Concurrency Scaling</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-static-regeneration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Incremental Static Regeneration</span></span></a></div><button aria-controls="menu-530fd302" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-530fd302"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-static-regeneration/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/incremental-static-regeneration/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Usage & Pricing</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Middleware</span></span></a></div><button aria-controls="menu-3060f466" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-3060f466"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware/edge-runtime"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Runtime</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware/middleware-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Middleware API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware/usage-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Usage & Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-middleware/limitations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limitations</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/og-image-generation"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OG Image Generation</span></span></a></div><button aria-controls="menu-a7f62c2e" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-a7f62c2e"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/og-image-generation/og-image-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">@vercel/og</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/og-image-generation/examples"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Examples</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Observability</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/log-drains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Log Drains</span></span></a></div><button aria-controls="menu-109b189f" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-109b189f"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/log-drains/configure-log-drains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Configure Log Drains</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/log-drains/log-drains-reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Log Drains Reference</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monitoring"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Monitoring</span></span></a></div><button aria-controls="menu-f9614e7f" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-f9614e7f"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monitoring/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monitoring/monitoring-reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Monitoring Reference</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/monitoring/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits and Pricing</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/observability"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Observability</span></span></a></div><button aria-controls="menu-e3f79975" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-e3f79975"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/observability/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits and Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/observability/logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/observability/query"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Query</span></span></a></div><button aria-controls="menu-d4d9f313" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-d4d9f313"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/observability/query/query-reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Query Reference</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/otel"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OpenTelemetry</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/runtime-logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Runtime Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Speed Insights</span></span></a></div><button aria-controls="menu-009404d1" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-009404d1"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/using-speed-insights"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using Speed Insights</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/metrics"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Metrics</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/privacy-policy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Privacy</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/package"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">@vercel/speed-insights</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits and Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/troubleshooting"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Troubleshooting</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/speed-insights/migrating-from-legacy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Migrating from Legacy</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Web Analytics</span></span></a></div><button aria-controls="menu-0655c809" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-0655c809"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/quickstart"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/using-web-analytics"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using Web Analytics</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/filtering"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Filtering</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/custom-events"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Custom Events</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/redacting-sensitive-data"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Redacting Sensitive Data</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/privacy-policy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Privacy</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/package"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">@vercel/analytics</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/limits-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/analytics/troubleshooting"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Troubleshooting</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Platform</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/dashboard-features"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Dashboard</span></span></a></div><button aria-controls="menu-6cf43df3" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-6cf43df3"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/dashboard-features/overview"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Navigating the Dashboard</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/dashboard-features/support-center"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Support Center</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/dashboard-features/command-menu"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using the Command Menu </span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/notifications"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Notifications</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/projects"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Projects</span></span></a></div><button aria-controls="menu-53bc074d" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-53bc074d"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/projects/managing-projects"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing projects</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/projects/project-dashboard"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Project Dashboard</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/projects/transferring-projects"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Transferring a project</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Project Configuration</span></span></a></div><button aria-controls="menu-a9dbbfef" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-a9dbbfef"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/general-settings"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">General Settings</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/project-settings"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Project Settings</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/git-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Git Configuration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/git-settings"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Git Settings</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/global-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Global Configuration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/project-configuration/security-settings"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Security settings</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">CLI</span></span></a></div><button aria-controls="menu-42b67d72" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-42b67d72"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/deploying-from-cli"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deploying from CLI</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/project-linking"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Project Linking</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/about-telemetry"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Telemetry</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/global-options"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Global Options</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/alias"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel alias</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/bisect"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel bisect</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/build"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel build</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/certs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel certs</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/deploy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel deploy</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/dev"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel dev</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/dns"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel dns</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/domains"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel domains</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/env"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel env</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/git"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel git</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/help"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel help</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/init"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel init</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/inspect"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel inspect</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/install"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel install</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel integration</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/integration-resource"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel integration-resource</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/link"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel link</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/list"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel list</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/login"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel login</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/logout"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel logout</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/logs"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel logs</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/project"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel project</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/promote"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel promote</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/pull"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel pull</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/redeploy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel redeploy</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/remove"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel remove</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/rollback"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel rollback</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/switch"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel switch</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/teams"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel teams</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/telemetry"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel telemetry</code></span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/cli/whoami"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="w-full"><code class="inline-block overflow-hidden text-ellipsis whitespace-nowrap code_code__FwiyS">vercel whoami</code></span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integrations</span></span></a></div><button aria-controls="menu-6091d15a" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-6091d15a"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/install-an-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Extend Vercel</span></span></a></div><button aria-controls="menu-aa6b132e" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-aa6b132e"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/install-an-integration/add-a-connectable-account"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add a Connectable Account</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/install-an-integration/product-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Add a Native Integration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/install-an-integration/manage-integrations-reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Permissions and Access</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integrate with Vercel</span></span></a></div><button aria-controls="menu-3f96ae28" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-3f96ae28"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/native-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Native integration concepts</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/marketplace-product"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Create a Native Integration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/deployment-integration-action"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Deployment integration actions</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/marketplace-flows"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Native Integration Flows</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/marketplace-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Native Integrations REST API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/approval-checklist"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integration Approval Checklist</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/submit-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Requirements for listing an Integration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/create-integration/upgrade-integration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Upgrade an Integration</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">CMS Integrations</span></span></a></div><button aria-controls="menu-9871a81b" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-9871a81b"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/agility-cms"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Agility CMS</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/butter-cms"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">ButterCMS</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/contentful"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Contentful</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/dato-cms"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">DatoCMS</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/formspree"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Formspree</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/makeswift"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Makeswift</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/sanity"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sanity</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/cms/sitecore"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sitecore</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/ecommerce"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Ecommerce Integrations</span></span></a></div><button aria-controls="menu-b8f5776a" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-b8f5776a"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/ecommerce/bigcommerce"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">BigCommerce</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/ecommerce/shopify"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Shopify</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/sign-in-with-vercel"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sign in with Vercel</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><span class="inline-block whitespace-nowrap text-ellipsis overflow-hidden">External Platforms</span></div><button aria-controls="menu-c453f9d4" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 before:content-[""] before:inset-0 before:absolute" type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-c453f9d4"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/integrations/external-platforms/kubernetes"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Kubernetes</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/limits"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits</span></span></a></div><button aria-controls="menu-51558182" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-51558182"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/limits/fair-use-guidelines"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Fair use Guidelines</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rest-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">REST API</span></span></a></div><button aria-controls="menu-a7fa8bf1" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-a7fa8bf1"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rest-api/vercel-api-integrations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Building Integrations with Vercel REST API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rest-api/endpoints"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">REST API Endpoints</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rest-api/errors"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">REST API Errors</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rest-api/interfaces"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">REST API Interfaces</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/sdk"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Vercel SDK</span></span></a></div><button aria-controls="menu-05fbdfc3" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-05fbdfc3"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/sdk/reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">SDK Reference</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Pricing</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Plans</span></span></a></div><button aria-controls="menu-35d42025" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-35d42025"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/hobby"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Hobby Plan</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/pro"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pro Plan</span></span></a></div><button aria-controls="menu-076a34c1" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-076a34c1"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/pro/trials"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pro Plan Trial</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/pro/billing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Billing FAQ</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/enterprise"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Enterprise Plan</span></span></a></div><button aria-controls="menu-3063b618" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-3063b618"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/plans/enterprise/billing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Billing FAQ</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pricing</span></span></a></div><button aria-controls="menu-e9e0a7ea" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-e9e0a7ea"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Regional Pricing</span></span></a></div><button aria-controls="menu-5cacd2bc" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-5cacd2bc"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/cpt1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Cape Town, South Africa</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/cle1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Cleveland, USA</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/dub1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Dublin, Ireland</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/fra1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Frankfurt, Germany</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/hkg1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Hong Kong</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/lhr1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">London, UK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/bom1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Mumbai, India</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/kix1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Osaka, Japan</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/cdg1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Paris, France</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/pdx1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Portland, USA</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/sfo1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">San Francisco, USA</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/gru1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">São Paulo, Brazil</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/icn1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Seoul, South Korea</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/sin1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Singapore</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/arn1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Stockholm, Sweden</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/syd1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Sydney, Australia</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/hnd1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Tokyo, Japan</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/regional-pricing/iad1"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Washington, D.C. USA</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/manage-and-optimize-usage"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Manage and Optimize Usage</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/how-does-vercel-calculate-usage-of-resources"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Calculating Usage of Resources</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/understanding-my-invoice"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Billing & Invoices</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/legacy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Legacy Metrics</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/observability"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Observability</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/pricing/artifacts"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Remote Cache Artifacts</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/spend-management"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Spend Management</span></span></a></div></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Security</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/attack-challenge-mode"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Attack Challenge Mode</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/audit-log"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Audit Logs</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Compliance</span></span></a></div><button aria-controls="menu-84003256" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-84003256"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security/compliance"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Security & Compliance Measures</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security/shared-responsibility"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Shared Responsibility Model</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security/pci-dss"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">PCI DSS iframe Integration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security/reverse-proxy"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Reverse Proxy Servers and Vercel</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/security/access-control"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Access Control</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/ddos-mitigation"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">DDoS Mitigation</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-firewall"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Firewall</span></span></a></div><button aria-controls="menu-f4b509a2" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-f4b509a2"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-firewall/firewall-concepts"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Firewall Concepts</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-firewall/firewall-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Firewall API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-firewall/firewall-alerts"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Firewall Alerts</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-firewall/firewall-observability"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Firewall Observability</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OIDC</span></span></a></div><button aria-controls="menu-1fea78df" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-1fea78df"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc/aws"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">AWS</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc/azure"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Azure</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc/api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Connect your API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc/gcp"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Google Cloud Platform</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/oidc/reference"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">OIDC Reference</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">RBAC</span></span></a></div><button aria-controls="menu-0d5056f4" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-0d5056f4"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac/access-roles"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Access Roles</span></span></a></div><button aria-controls="menu-bd89d676" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-bd89d676"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac/access-roles/project-level-roles"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Project Level Roles</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac/access-roles/team-level-roles"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Team Level Roles</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac/access-groups"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Access Groups</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/rbac/managing-team-members"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managing Team Members</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/secure-compute"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Secure Compute</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">WAF</span></span></a></div><button aria-controls="menu-c359967b" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-c359967b"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/custom-rules"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Custom Rules</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/rate-limiting"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Rate Limiting</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/system-bypass-rules"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">System Bypass Rules</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/rule-configuration"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Rule Configuration</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/rate-limiting-sdk"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Rate Limiting SDK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/ip-blocking"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">IP Blocking</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/managed-rulesets"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Managed Rulesets</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/examples"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Examples</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-waf/usage-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Usage & Pricing</span></span></a></div></div></li></ul></div></li></ul></div><div><h3 class="mb-2 text-sm font-semibold text-[var(--ds-gray-1000)]" style="margin-top:32px">Storage</h3><ul class="m-0 list-none p-0"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-blob"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Blob</span></span></a></div><button aria-controls="menu-e3e85023" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-e3e85023"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-blob/server-upload"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Server Uploads</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-blob/client-upload"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Client Uploads</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-blob/using-blob-sdk"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using the SDK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/vercel-blob/usage-and-pricing"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Pricing</span></span></a></div></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Config</span></span></a></div><button aria-controls="menu-5ffdf857" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-5ffdf857"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/get-started"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Getting Started</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/using-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Using Edge Config</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/vercel-api"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Configs & REST API</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-dashboard"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Configs & Dashboard</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-sdk"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Edge Config SDK</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-limits"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Limits & Pricing</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Integrations</span></span></a></div><button aria-controls="menu-7f82d3f5" aria-expanded="false" class="[&:is(:hover,:focus-visible)]:text-[var(--geist-foreground)] outline-[var(--ds-focus-color)] text-inherit grid aspect-square w-8 cursor-pointer place-items-center rounded-sm border-0 bg-transparent p-0 " type="button"><span class="pointer-events-none grid h-5 w-full place-items-center"><svg class="pointer-events-none motion-safe:transition-transform motion-safe:duration-300" data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:12px;height:12px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.0607 5.49999L13.5303 6.03032L8.7071 10.8535C8.31658 11.2441 7.68341 11.2441 7.29289 10.8535L2.46966 6.03032L1.93933 5.49999L2.99999 4.43933L3.53032 4.96966L7.99999 9.43933L12.4697 4.96966L13 4.43933L14.0607 5.49999Z" fill="currentColor"/></svg></span><span class="sr-only">Expand menu</span></button></div><div class="[&[inert]]:grid-rows-[0fr] grid-rows-[1fr] grid w-full overflow-hidden motion-safe:[transition-property:opacity,grid-template-rows,transform,filter] [&[inert]]:opacity-0 [&[inert]]:blur-[4px] [&[inert]]:translate-y-[12px] blur-none motion-safe:duration-300 " inert=""><ul class="relative m-0 overflow-hidden flex min-h-0 w-full list-none flex-col p-0 before:absolute before:top-2 before:bottom-2 before:left-0 before:w-[1px] before:bg-[var(--accents-2)] before:content-['']" id="menu-7f82d3f5"><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations/devcycle-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">DevCycle</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations/hypertune-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Hypertune</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations/launchdarkly-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">LaunchDarkly</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations/split-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Split</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start pl-4 "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/edge-config/edge-config-integrations/statsig-edge-config"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Statsig</span></span></a></div></div></li></ul></div></li></ul></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/postgres"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Postgres</span></span></a></div></div></li><li class="first:mt-2 last:mb-2 min-h-[36px] relative flex w-full select-none flex-col items-start "><div class="flex w-full items-center relative pr-4"><div class="flex items-center h-[36px] flex-1 text-ellipsis overflow-hidden whitespace-nowrap [&:has(+button)_a]:pr-0 [&:has(+button:is(:hover,:focus-visible))_:is(a,span,button)]:text-[var(--geist-foreground)] [&:is(:hover,:focus-within)]:text-[var(--geist-foreground)] has-[:focus-visible]:outline outline-[var(--ds-focus-color)] outline-offset-1"><a aria-current="false" class="font-normal text-inherit no-underline flex h-full w-full items-center justify-between py-[8px] pr-4" href="/docs/redis"><span class="flex items-center outline-focus pointer-events-none w-full rounded-sm outline-2 outline-offset-2 group-focus-visible:outline"><span class="inline-block w-full overflow-hidden text-ellipsis whitespace-nowrap text-gray-900">Redis</span></span></a></div></div></li></ul></div></nav></aside></div><button type="button" aria-expanded="true" aria-label="Collapse sidebar" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc width-[40px] absolute left-[calc(100%+0.25rem)] top-4 hidden min-w-[40px] focus-visible:outline-transparent lg:block geist-new-themed geist-new-tertiary geist-new-tertiary-fill button_tertiary__rIu0q button_shape__K_zQW button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_ button_flex__fCY56"><svg class="w-4 text-gray-700" fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M1.5 2.5h13v2.505h-13V2.5ZM0 1h16v11.5c0 1.3807-1.1193 2.5-2.5 2.5h-11C1.11929 15 0 13.8807 0 12.5V1Zm14.5 11.5c0 .5523-.4477 1-1 1h-11c-.55228 0-1-.4477-1-1V6.255h13V12.5Z" fill="currentColor" fill-rule="evenodd"></path><path class="origin-center [transform-box:fill-box] motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-[cubic-bezier(0.4,0,0.2,1)] translate-x-0" d="M5 5h1.25v8.5H5z" fill="currentColor"></path></svg></span></button></div><dialog class="hidden [&[open]]:block fixed inset-[unset] bottom-0 left-0 m-0 max-h-[80dvh] min-h-[5dvh] w-full max-w-none rounded-t-[8px] border-0 lg:max-h-none [&:is(dialog)::backdrop]:opacity-0 [&:is(dialog)]:overflow-visible [&:is(dialog)]:border-t-[1px] [&:is(dialog)]:border-gray-300 [&:is(dialog):not(:has(:is(a,button):hover))_nav]:cursor-grab [&:is(dialog)::after]:bg-background-100 [&:is(dialog)::after]:absolute [&:is(dialog)::after]:inset-0 [&:is(dialog)::after]:w-full [&:is(dialog)::after]:translate-y-full [&:is(dialog)::after]:content-[""]"><div class="framework-select_wrapper__huBPe"><div class="framework-select_info__2aA7e">Choose a framework to optimize documentation to:</div><ul></ul></div></dialog><div class="pointer-events-none fixed inset-0 z-50 hidden bg-[hsl(0_0%_0%/0.4)]"></div><div class="content_content__thPFQ"><div class="flex h-0 items-center justify-start gap-x-2 md:h-6 2xl:justify-between 2xl:[&:not(:has(:nth-of-type(2)))]:justify-start"></div><div class="linked-heading_hasDescription__CyYiJ linked-heading_container__iwdxj"><h1 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2.5rem;--text-line-height:3.5rem;--text-letter-spacing:-0.058125rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="vercel-documentation"></span><span class="linked-heading_title__mCMLh [&>p]:m-0">Vercel Documentation</span></h1><span class="linked-heading_description__ijcxY">Vercel is a developer cloud to build and deploy web applications.</span></div><div class="[&_[data-geist-note]_p]:my-0 [&_code_p]:my-0 [&_code_p]:contents [&_p]:leading-[1.6] [&_ol]:p-0 [&_ol]:pl-4 [&_ol]:list-decimal [&_ol]:ml-3.5 [&_[class*='container']_p]:m-0"><div class="linked-heading_container__iwdxj"><h2 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="start-with-an-idea"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#start-with-an-idea">Start with an idea</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h2></div> <p>Vercel builds tools to help you create products faster.</p> <p>Like <a href="https://v0.dev/" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_blend__JjXMT">v0</a>, which is your web development assistant. Paste a screenshot or write a few sentences and v0 will generate a starting point for your next app, including the code for how it looks <em>and</em> how it works. v0 then connects to Vercel, takes your code, and creates a URL you can share.</p> <div class="home-page_templateSection__34_CL"><div class="home-page_subheadingWrapper__oXmcR"><div><p class="home-page_subheadingByline__kYHO_">Get started in minutes</p><h2 class="home-page_subheading__JfLCi">Deploy a Template</h2></div><div class="home-page_templateButtonWrapper__c4Puj home-page_desktopOnly__iS17J"><a role="link" tabindex="0" href="/templates/starter" type="submit" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="min-width:100%;max-width:100%;--geist-icon-size:16px"><span class="button_content__1aE1_">View All Templates</span></a></div></div><div class="home-page_templates__s1t38"><a href="/templates/next.js/nextjs-boilerplate" data-zone="vercel-site" class="link_link__hbWKh home-page_template__okCr6"><div class="home-page_templateImageWrapper__4lD0I"><img data-version="v1" alt="Next.js Boilerplate" loading="eager" width="600" height="337.5" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk home-page_templateImage__pz05O" style="color:transparent" sizes="(max-width: 768px) 100vw, 600px" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=3840&q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&w=3840&q=75"/><div class="home-page_templateImageScrim__uUNOS"></div></div><div class="home-page_templateText__Xm_fu"><p class="home-page_templateTitle__x89Nt">Next.js Boilerplate</p><p class="home-page_templateDescription__Jijwg">Get started with Next.js and React in seconds.</p></div></a><a href="/templates/next.js/nuxtjs-boilerplate" data-zone="vercel-site" class="link_link__hbWKh home-page_template__okCr6"><div class="home-page_templateImageWrapper__4lD0I"><img data-version="v1" alt="Nuxt.js 3 Boilerplate" loading="eager" width="600" height="337.5" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk home-page_templateImage__pz05O" style="color:transparent" sizes="(max-width: 768px) 100vw, 600px" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=3840&q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2FleiZ1j6r8MPRgnugYyWf3%2F01c94495dd082a948af73e871347c93e%2FCleanShot_2022-11-18_at_13.58.42_2x.png&w=3840&q=75"/><div class="home-page_templateImageScrim__uUNOS"></div></div><div class="home-page_templateText__Xm_fu"><p class="home-page_templateTitle__x89Nt">Nuxt.js 3 Boilerplate</p><p class="home-page_templateDescription__Jijwg">A Nuxt.js 3 app, bootstrapped with create-nuxt-app.</p></div></a><a href="/templates/next.js/sveltekit-boilerplate" data-zone="vercel-site" class="link_link__hbWKh home-page_template__okCr6"><div class="home-page_templateImageWrapper__4lD0I"><img data-version="v1" alt="SvelteKit Boilerplate" loading="eager" width="600" height="337.5" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk home-page_templateImage__pz05O" style="color:transparent" sizes="(max-width: 768px) 100vw, 600px" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=640&q=75 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=750&q=75 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=828&q=75 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1080&q=75 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1200&q=75 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=1920&q=75 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=2048&q=75 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=3840&q=75 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5WIYQtnSEfZKYFB9kvsR0w%2F974bee31f87aa376a54dccdb0713629d%2FCleanShot_2022-05-23_at_22.13.20_2x.png&w=3840&q=75"/><div class="home-page_templateImageScrim__uUNOS"></div></div><div class="home-page_templateText__Xm_fu"><p class="home-page_templateTitle__x89Nt">SvelteKit Boilerplate</p><p class="home-page_templateDescription__Jijwg">A SvelteKit app including nested routes, layouts, and page endpoints.</p></div></a></div><div class="home-page_templateButtonWrapper__c4Puj home-page_mobileOnly__FD6vw"><a role="link" tabindex="0" href="/templates/starter" type="submit" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="min-width:100%;max-width:100%;--geist-icon-size:16px"><span class="button_content__1aE1_">View All Templates</span></a></div></div> <div class="linked-heading_container__iwdxj"><h2 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="iterate-quickly-while-building-your-product"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#iterate-quickly-while-building-your-product">Iterate quickly while building your product</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h2></div> <p>The first version of your product isn't perfect, so you need to iterate and try things.</p> <p>You can ask v0 to make updates for you, or if you prefer, export the code to your editor and start building locally. When you've finished adding your new feature, you want to test and make sure it works correctly on different browsers and devices <em>before</em> you update your live application.</p> <p>Vercel integrates with tools like GitHub where you can save snapshots of your codebase for every change. For example, let's say you send your latest code changes to GitHub in a pull request. Vercel automatically creates a new URL from your changes and sends you a link to review before merging.</p> <div class="linked-heading_container__iwdxj"><h3 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="infrastructure-from-your-code"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#infrastructure-from-your-code">Infrastructure from your code</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h3></div> <p>How did that URL get created? Vercel took care of all the infrastructure automation for you:</p> <ul class="my-3 ml-6 list-none p-0 [&>li]:before:absolute [&>li]:before:-ml-3.5 [&>li]:before:inline-block [&>li]:before:text-[var(--accents-4)] [&>li]:before:content-['–']"> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0">It examined your code to understand what tools you're working with</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0">It installed the necessary dependencies into a temporary, secure sandbox</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0">It ran compute to build your application from these dependencies</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0">It took the build output and generated the cloud infrastructure needed to run your app</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0">It assigned and secured a domain so you can access your app through a URL</li> </ul> <p>This is all happening inside of an automatically generated <em>preview</em> environment on Vercel — a place where you can safely iterate and make changes without affecting your application. For example, you might want to connect to a different database to prevent changing your live data.</p> <p>If your application works correctly and you're happy with the changes, you can merge this new feature into your main codebase. Once again, Vercel will automatically create and build a new URL for you, in a separate <em>production</em> environment.</p> <p>Just like that, your application is now live and updated around the world. Make a mistake? Don't sweat it — you can instantly go back to your previous version in a few clicks.</p> <div class="linked-heading_container__iwdxj"><h2 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="use-your-favorite-developer-tools"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#use-your-favorite-developer-tools">Use your favorite developer tools</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h2></div> <p>Vercel helps your build any way your prefer, whether that is a handful of HTML files or a powerful JavaScript framework. While you don't <em>need</em> to use a framework, these abstractions can help you build better products.</p> <p>Frameworks include components and optimizations to help improve your <a href="https://vercel.com/blog/how-core-web-vitals-affect-seo" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_blend__JjXMT">Core Web Vitals</a>, which is how search engines determine the speed and quality of your application. Your vitals affect your page ranking in search results, so it's important to pay attention and optimize them.</p> <p>Frameworks also simplify how you build common patterns, like routing between pages or fetching and displaying data from a database. Vercel supports over 30 different frameworks with zero-configuration.</p> <p>We are the creators and maintainers of <a href="https://nextjs.org" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_blend__JjXMT">Next.js</a>, a framework for building React applications. We also help fund the full-time development of <a href="https://svelte.dev" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_blend__JjXMT">Svelte</a>, as well as support other open-source frameworks.</p> <div class="home-page_productsSection__Wzhmm"><div class="home-page_products__6av7x"><a href="https://nextjs.org/" rel="noopener" target="blank" data-zone="null" class="link_link__hbWKh home-page_product__IjaRg"><div><svg aria-label="Next.js logomark" class="next-mark_root__iLw9v" height="32" role="img" viewBox="0 0 180 180" width="32"><mask height="180" id="«R5aep7ier95nb»mask0_408_134" maskUnits="userSpaceOnUse" style="mask-type:alpha" width="180" x="0" y="0"><circle cx="90" cy="90" fill="black" r="90"></circle></mask><g mask="url(#«R5aep7ier95nb»mask0_408_134)"><circle cx="90" cy="90" data-circle="true" fill="black" r="90"></circle><path d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z" fill="url(#«R5aep7ier95nb»paint0_linear_408_134)"></path><rect fill="url(#«R5aep7ier95nb»paint1_linear_408_134)" height="72" width="12" x="115" y="54"></rect></g><defs><linearGradient gradientUnits="userSpaceOnUse" id="«R5aep7ier95nb»paint0_linear_408_134" x1="109" x2="144.5" y1="116.5" y2="160.5"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="«R5aep7ier95nb»paint1_linear_408_134" x1="121" x2="120.799" y1="54" y2="106.875"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient></defs></svg></div><div class="home-page_productText__Brzdg"><p class="home-page_productTitle__M_tGX"><span>Next.js</span><span class="ml-1 flex"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:14px;height:14px;color:var(--ds-gray-600)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.75001 2H5.00001V3.5H5.75001H11.4393L2.21968 12.7197L1.68935 13.25L2.75001 14.3107L3.28034 13.7803L12.4988 4.56182V10.25V11H13.9988V10.25V3C13.9988 2.44772 13.5511 2 12.9988 2H5.75001Z" fill="currentColor"/></svg></span></p><p class="home-page_productDescription__CvuJM">A React framework that gives you building blocks to create web applications.</p></div></a><a href="https://turbo.build/repo" rel="noopener" target="blank" data-zone="null" class="link_link__hbWKh home-page_product__IjaRg"><div><svg aria-label="Turbo logomark" height="32" role="img" viewBox="0 0 40 40" width="32"><path d="M19.9845 6.99291C12.818 6.99291 6.98755 12.8279 6.98755 19.9999C6.98755 27.1721 12.818 33.0071 19.9845 33.0071C27.1509 33.0071 32.9814 27.1721 32.9814 19.9999C32.9814 12.8279 27.1509 6.99291 19.9845 6.99291ZM19.9845 26.7313C16.2694 26.7313 13.2585 23.718 13.2585 19.9999C13.2585 16.282 16.2694 13.2687 19.9845 13.2687C23.6996 13.2687 26.7105 16.282 26.7105 19.9999C26.7105 23.718 23.6996 26.7313 19.9845 26.7313Z" fill="var(--geist-foreground)"></path><path clip-rule="evenodd" d="M21.0734 4.85648V0C31.621 0.564369 40 9.30362 40 19.9999C40 30.6963 31.621 39.4332 21.0734 40V35.1435C28.9344 34.5815 35.1594 28.0078 35.1594 19.9999C35.1594 11.9922 28.9344 5.41843 21.0734 4.85648ZM8.52181 29.931C6.43794 27.5233 5.09469 24.4568 4.85508 21.09H0C0.251709 25.8011 2.13468 30.0763 5.08501 33.368L8.51938 29.931H8.52181ZM18.8951 40V35.1435C15.5285 34.9037 12.4644 33.5619 10.0587 31.4739L6.62435 34.9109C9.91593 37.866 14.1876 39.7481 18.8927 40H18.8951Z" fill="url(#«R5iep7ier95nb»paint0_linear_902_224)" fill-rule="evenodd"></path><defs><linearGradient gradientUnits="userSpaceOnUse" id="«R5iep7ier95nb»paint0_linear_902_224" x1="21.8576" x2="2.17018" y1="2.81244" y2="22.4844"><stop stop-color="#0096FF"></stop><stop offset="1" stop-color="#FF1E56"></stop></linearGradient></defs></svg></div><div class="home-page_productText__Brzdg"><p class="home-page_productTitle__M_tGX"><span>Turborepo</span><span class="ml-1 flex"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:14px;height:14px;color:var(--ds-gray-600)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.75001 2H5.00001V3.5H5.75001H11.4393L2.21968 12.7197L1.68935 13.25L2.75001 14.3107L3.28034 13.7803L12.4988 4.56182V10.25V11H13.9988V10.25V3C13.9988 2.44772 13.5511 2 12.9988 2H5.75001Z" fill="currentColor"/></svg></span></p><p class="home-page_productDescription__CvuJM">A high-performance build system for JavaScript and TypeScript codebases.</p></div></a><a href="https://sdk.vercel.ai/docs" rel="noopener" target="blank" data-zone="null" class="link_link__hbWKh home-page_product__IjaRg"><div><svg class="mb-0.5 mr-0 inline text-black sm:w-5" fill="none" height="32" viewBox="0 0 14 17" width="32" xmlns="http://www.w3.org/2000/svg"><path d="M7.73047 16.2559C7.81836 16.2559 7.88916 16.2266 7.94287 16.168C8.00146 16.1143 8.03809 16.0435 8.05273 15.9556C8.15039 15.1841 8.25781 14.5347 8.375 14.0073C8.49707 13.48 8.6582 13.0479 8.8584 12.7109C9.05859 12.374 9.32471 12.1055 9.65674 11.9053C9.98877 11.7051 10.4136 11.5513 10.9312 11.4438C11.4536 11.3315 12.0933 11.2339 12.8501 11.1509C12.9429 11.1411 13.0161 11.1069 13.0698 11.0483C13.1284 10.9897 13.1577 10.9165 13.1577 10.8286C13.1577 10.7407 13.1284 10.6675 13.0698 10.6089C13.0161 10.5503 12.9429 10.5161 12.8501 10.5063C12.0933 10.4233 11.4536 10.3281 10.9312 10.2207C10.4136 10.1084 9.98877 9.95215 9.65674 9.75195C9.32471 9.55176 9.05859 9.2832 8.8584 8.94629C8.6582 8.60938 8.49707 8.17725 8.375 7.6499C8.25781 7.12256 8.15039 6.4707 8.05273 5.69434C8.03809 5.61133 8.00146 5.54297 7.94287 5.48926C7.88916 5.43066 7.81836 5.40137 7.73047 5.40137C7.64258 5.40137 7.56934 5.43066 7.51074 5.48926C7.45703 5.54297 7.42285 5.61133 7.4082 5.69434C7.31543 6.4707 7.20801 7.12256 7.08594 7.6499C6.96875 8.17725 6.80762 8.60938 6.60254 8.94629C6.40234 9.2832 6.13623 9.55176 5.8042 9.75195C5.47217 9.95215 5.04736 10.1084 4.52979 10.2207C4.01221 10.3281 3.37256 10.4233 2.61084 10.5063C2.51807 10.5161 2.44238 10.5503 2.38379 10.6089C2.3252 10.6675 2.2959 10.7407 2.2959 10.8286C2.2959 10.9165 2.3252 10.9897 2.38379 11.0483C2.44238 11.1069 2.51807 11.1411 2.61084 11.1509C3.36768 11.2485 4.00488 11.3584 4.52246 11.4805C5.04004 11.5977 5.4624 11.7539 5.78955 11.9492C6.12158 12.1445 6.3877 12.4082 6.58789 12.7402C6.78809 13.0674 6.94922 13.4922 7.07129 14.0146C7.19336 14.5371 7.30566 15.1841 7.4082 15.9556C7.42285 16.0435 7.45703 16.1143 7.51074 16.168C7.56934 16.2266 7.64258 16.2559 7.73047 16.2559ZM3.03564 8.57275C3.09424 8.57275 3.14307 8.55322 3.18213 8.51416C3.22119 8.4751 3.24316 8.42871 3.24805 8.375C3.31152 7.91113 3.375 7.55225 3.43848 7.29834C3.50195 7.03955 3.60205 6.84668 3.73877 6.71973C3.87549 6.58789 4.07812 6.48535 4.34668 6.41211C4.61523 6.33887 4.98877 6.25586 5.46729 6.16309C5.59424 6.14355 5.65771 6.07275 5.65771 5.95068C5.65771 5.89209 5.63818 5.8457 5.59912 5.81152C5.56494 5.77246 5.521 5.74805 5.46729 5.73828C4.98877 5.66992 4.61279 5.604 4.33936 5.54053C4.0708 5.47217 3.86816 5.37207 3.73145 5.24023C3.59961 5.10352 3.50195 4.90332 3.43848 4.63965C3.375 4.37109 3.31152 4.00244 3.24805 3.53369C3.2334 3.40186 3.1626 3.33594 3.03564 3.33594C2.90869 3.33594 2.83545 3.4043 2.81592 3.54102C2.76221 4 2.70361 4.35889 2.64014 4.61768C2.57666 4.87646 2.47656 5.07178 2.33984 5.20361C2.20312 5.33057 1.99805 5.43066 1.72461 5.50391C1.45605 5.57227 1.08252 5.65039 0.604004 5.73828C0.477051 5.7627 0.413574 5.8335 0.413574 5.95068C0.413574 6.07275 0.486816 6.14355 0.633301 6.16309C1.10205 6.24609 1.4707 6.32178 1.73926 6.39014C2.0127 6.4585 2.21533 6.55859 2.34717 6.69043C2.479 6.82227 2.57666 7.02002 2.64014 7.28369C2.70361 7.54248 2.76221 7.90381 2.81592 8.36768C2.83545 8.50439 2.90869 8.57275 3.03564 8.57275ZM6.40479 3.82666C6.48291 3.82666 6.53174 3.78271 6.55127 3.69482C6.61475 3.32861 6.67578 3.06006 6.73438 2.88916C6.79297 2.71338 6.90771 2.58887 7.07861 2.51562C7.24951 2.44238 7.5376 2.37158 7.94287 2.30322C8.03076 2.28369 8.07471 2.23486 8.07471 2.15674C8.07471 2.06885 8.03076 2.02002 7.94287 2.01025C7.5376 1.93701 7.24951 1.86621 7.07861 1.79785C6.90771 1.72461 6.79297 1.60254 6.73438 1.43164C6.67578 1.25586 6.61475 0.982422 6.55127 0.611328C6.53174 0.523438 6.48291 0.479492 6.40479 0.479492C6.31689 0.479492 6.26807 0.523438 6.2583 0.611328C6.18994 0.982422 6.12646 1.25586 6.06787 1.43164C6.01416 1.60254 5.89941 1.72461 5.72363 1.79785C5.55273 1.86621 5.26465 1.93701 4.85938 2.01025C4.77148 2.02002 4.72754 2.06885 4.72754 2.15674C4.72754 2.23486 4.77148 2.28369 4.85938 2.30322C5.26465 2.37158 5.55273 2.44238 5.72363 2.51562C5.89941 2.58887 6.01416 2.71338 6.06787 2.88916C6.12646 3.06006 6.18994 3.32861 6.2583 3.69482C6.26807 3.78271 6.31689 3.82666 6.40479 3.82666Z" fill="currentColor"></path></svg></div><div class="home-page_productText__Brzdg"><p class="home-page_productTitle__M_tGX"><span>Vercel AI SDK</span><span class="ml-1 flex"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:14px;height:14px;color:var(--ds-gray-600)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.75001 2H5.00001V3.5H5.75001H11.4393L2.21968 12.7197L1.68935 13.25L2.75001 14.3107L3.28034 13.7803L12.4988 4.56182V10.25V11H13.9988V10.25V3C13.9988 2.44772 13.5511 2 12.9988 2H5.75001Z" fill="currentColor"/></svg></span></p><p class="home-page_productDescription__CvuJM">An open source library for building AI-powered user interfaces.</p></div></a></div></div> <div class="linked-heading_container__iwdxj"><h2 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="stay-fast-and-secure"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#stay-fast-and-secure">Stay fast and secure</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h2></div> <p>Vercel's developer platform understands the tools and frameworks you're using. This enables us to optimize and secure your application automatically in ways that are normally difficult and time consuming.</p> <p>Instead of manually writing code to define your application infrastructure, Vercel can automatically convert the output from your framework into infrastructure. For example, we manage:</p> <ul class="my-3 ml-6 list-none p-0 [&>li]:before:absolute [&>li]:before:-ml-3.5 [&>li]:before:inline-block [&>li]:before:text-[var(--accents-4)] [&>li]:before:content-['–']"> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/edge-network"><span class="strong_docsString__rhKq5">Networking</span></a>: We help make your application fast globally</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/domains"><span class="strong_docsString__rhKq5">Domains</span></a>: We can manage your domains, including DNS, SSL certificates, and nameservers</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/storage"><span class="strong_docsString__rhKq5">Storage</span></a>: We offer cache and object storage, as well as first-party database integrations</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/functions"><span class="strong_docsString__rhKq5">Compute</span></a>: We provide an autoscaling, distributed, and secure compute platform</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/deployments/builds"><span class="strong_docsString__rhKq5">CI/CD</span></a>: We automatically deploy your application as you push to your git repository</li> </ul> <div class="linked-heading_container__iwdxj"><h3 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="observability"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#observability">Observability</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h3></div> <p>After shipping your application, you need to understand how it's performing in production. Vercel includes tools to help you view logs and traces, measure performance, and analyze traffic.</p> <ul class="my-3 ml-6 list-none p-0 [&>li]:before:absolute [&>li]:before:-ml-3.5 [&>li]:before:inline-block [&>li]:before:text-[var(--accents-4)] [&>li]:before:content-['–']"> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/runtime-logs"><span class="strong_docsString__rhKq5">Logging</span></a>: We allow you to view, search, and filter build/runtime logs to investigate issues and monitor your application.</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/otel"><span class="strong_docsString__rhKq5">Tracing</span></a>: We support integrations with tracing tools like OpenTelemetry for deeper performance analysis.</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/analytics"><span class="strong_docsString__rhKq5">Analytics</span></a>: We support first-party, privacy-friendly analytics for understanding how users interact with your application.</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/observability"><span class="strong_docsString__rhKq5">Metrics</span></a>: We display and support querying of performance metrics like request counts, error rates, and API latencies.</li> </ul> <p>We also integrate with other observability tools and support draining logs to any service.</p> <div class="linked-heading_container__iwdxj"><h3 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="security"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#security">Security</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h3></div> <p>Vercel helps protect your web application and prevent unwanted traffic.</p> <ul class="my-3 ml-6 list-none p-0 [&>li]:before:absolute [&>li]:before:-ml-3.5 [&>li]:before:inline-block [&>li]:before:text-[var(--accents-4)] [&>li]:before:content-['–']"> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/vercel-firewall"><span class="strong_docsString__rhKq5">Platform Firewall</span></a>: We automatically block malicious requests and unwanted bots before they reach your application.</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/security/ddos-mitigation"><span class="strong_docsString__rhKq5">DDoS Protection</span></a>: We protect your application from traffic spikes caused by Distributed Denial of Service (DDoS) attacks.</li> <li class="mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [&>p]:m-0"><a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/security/vercel-waf"><span class="strong_docsString__rhKq5">Web Application Firewall</span></a>: We allow you to define custom rules to protect from common attacks, web scrapers, and other unwanted traffic.</li> </ul> <p>We are compliant with SOC 2 Type 2, ISO 27001:2013, GDPR, PCI DSS, HIPAA, and other acronyms your security team asks about.</p> <div class="linked-heading_container__iwdxj"><h3 class="text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600" data-components-heading="true"><span class="linked-heading_target__xscdv linked-heading_offsetTop__uAoyO" id="start-building-today"></span><a class="linked-heading_title__mCMLh [&>p]:m-0" href="#start-building-today">Start building today</a><span class="linked-heading_permalink__pJ_q_"><svg class="text-[0.6em]" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z" fill="currentColor"/></svg></span></h3></div> <p>Vercel provides tools to build your ideas. We integrate with dozens of <a href="https://vercel.com/marketplace" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_blend__JjXMT">popular databases</a>, cloud infrastructure providers like <a data-zone="same" class="link_link__hbWKh link_blend__JjXMT" href="/docs/oidc/aws">AWS</a>, and more.</p> <p><a href="/new" data-zone="vercel-site" class="link_link__hbWKh link_blend__JjXMT">What will you ship?</a></p></div><div class="lastupdated_lastUpdatedSection__h385Y lastupdated_docs__E4Y5C"><div class="lastupdated_lastUpdatedText__K8mlx">Last updated on<!-- --> <!-- -->April 4, 2025</div></div><hr class="border-top-[1px] my-12 border-0 border-solid border-[var(--accents-2)] sm:my-9"/><div class="prev-next-nav_container__VR22m"><div class="prev-next-nav_separator__o2li6"></div><a data-testid="bottomnav/next" data-zone="same" class="link_link__hbWKh prev-next-nav_link__ccpRU" href="/docs/accounts"><div class="prev-next-nav_next__nkx6E"><div class="prev-next-nav_label__J6re6">Next</div><div class="prev-next-nav_title___QCq5">Account Management</div></div><div class="prev-next-nav_navIcon__5T09v"><svg class="prev-next-nav_icon__W5kzC" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.50001 1.93933L6.03034 2.46966L10.8536 7.29288C11.2441 7.68341 11.2441 8.31657 10.8536 8.7071L6.03034 13.5303L5.50001 14.0607L4.43935 13L4.96968 12.4697L9.43935 7.99999L4.96968 3.53032L4.43935 2.99999L5.50001 1.93933Z" fill="currentColor" /></svg></div></a></div><div class="mb-6 mt-12"><div class="feedback_inlineWrapper__DQQFm feedback_inlineWrapperClosed__v8oY3" data-feedback-inline=""><div class="feedback_inlineTriggerWrapper__o7yUx" style="height:48px;border-radius:30px"><div class="feedback_trigger__0zjFw"><p class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400">Was this helpful?</p><span class="feedback_emojisWrapper__iwjKS"><button aria-checked="false" aria-label="Select Love it! emoji" class="feedback_emoji__VX_rC" role="radio" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM4.5 8.97498H3.875V9.59998C3.875 11.4747 5.81046 12.8637 7.99817 12.8637C10.1879 12.8637 12.125 11.4832 12.125 9.59998V8.97498H11.5H4.5ZM7.99817 11.6137C6.59406 11.6137 5.63842 10.9482 5.28118 10.225H10.7202C10.3641 10.9504 9.40797 11.6137 7.99817 11.6137Z" fill="currentColor"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.15295 4.92093L5.375 3.5L4.59705 4.92093L3 5.21885L4.11625 6.39495L3.90717 8L5.375 7.30593L6.84283 8L6.63375 6.39495L7.75 5.21885L6.15295 4.92093ZM11.403 4.92093L10.625 3.5L9.84705 4.92093L8.25 5.21885L9.36625 6.39495L9.15717 8L10.625 7.30593L12.0928 8L11.8837 6.39495L13 5.21885L11.403 4.92093Z" fill="var(--ds-amber-800)"/></svg></button><button aria-checked="false" aria-label="Select It’s okay emoji" class="feedback_emoji__VX_rC" role="radio" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM11.5249 10.8478L11.8727 10.3286L10.8342 9.6329L10.4863 10.1522C9.94904 10.9543 9.0363 11.4802 8.00098 11.4802C6.96759 11.4802 6.05634 10.9563 5.51863 10.1567L5.16986 9.63804L4.13259 10.3356L4.48137 10.8542C5.2414 11.9844 6.53398 12.7302 8.00098 12.7302C9.47073 12.7302 10.7654 11.9816 11.5249 10.8478ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z" fill="currentColor"/></svg></button><button aria-checked="false" aria-label="Select Not great emoji" class="feedback_emoji__VX_rC" role="radio" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM5.75 7.75C6.30228 7.75 6.75 7.30228 6.75 6.75C6.75 6.19772 6.30228 5.75 5.75 5.75C5.19772 5.75 4.75 6.19772 4.75 6.75C4.75 7.30228 5.19772 7.75 5.75 7.75ZM11.25 6.75C11.25 7.30228 10.8023 7.75 10.25 7.75C9.69771 7.75 9.25 7.30228 9.25 6.75C9.25 6.19772 9.69771 5.75 10.25 5.75C10.8023 5.75 11.25 6.19772 11.25 6.75ZM11.5249 11.2622L11.8727 11.7814L10.8342 12.4771L10.4863 11.9578C9.94904 11.1557 9.0363 10.6298 8.00098 10.6298C6.96759 10.6298 6.05634 11.1537 5.51863 11.9533L5.16986 12.4719L4.13259 11.7744L4.48137 11.2558C5.2414 10.1256 6.53398 9.37982 8.00098 9.37982C9.47073 9.37982 10.7654 10.1284 11.5249 11.2622Z" fill="currentColor"/></svg></button><button aria-checked="false" aria-label="Select Hate it emoji" class="feedback_emoji__VX_rC" role="radio" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M4 9V16H5.5V9H4ZM12 9V16H10.5V9H12Z" fill="var(--ds-blue-700)"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8C14.5 9.57941 13.9367 11.0273 13 12.1536V14.2454C14.8289 12.7793 16 10.5264 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 10.5264 1.17107 12.7793 3 14.2454V12.1536C2.06332 11.0273 1.5 9.57941 1.5 8ZM8 14.5C8.51627 14.5 9.01848 14.4398 9.5 14.3261V15.8596C9.01412 15.9518 8.51269 16 8 16C7.48731 16 6.98588 15.9518 6.5 15.8596V14.3261C6.98152 14.4398 7.48373 14.5 8 14.5ZM3.78568 8.36533C4.15863 7.98474 4.67623 7.75 5.25 7.75C5.82377 7.75 6.34137 7.98474 6.71432 8.36533L7.78568 7.31548C7.14222 6.65884 6.24318 6.25 5.25 6.25C4.25682 6.25 3.35778 6.65884 2.71432 7.31548L3.78568 8.36533ZM10.75 7.75C10.1762 7.75 9.65863 7.98474 9.28568 8.36533L8.21432 7.31548C8.85778 6.65884 9.75682 6.25 10.75 6.25C11.7432 6.25 12.6422 6.65884 13.2857 7.31548L12.2143 8.36533C11.8414 7.98474 11.3238 7.75 10.75 7.75ZM6.25 12H9.75C9.75 11.0335 8.9665 10.25 8 10.25C7.0335 10.25 6.25 11.0335 6.25 12Z" fill="currentColor"/> </svg></button></span></div><div><form><div class="feedback_formWrapper__bL7px"><textarea class="feedback_textarea__iiRZ8" id="feedback-textarea" placeholder="Your feedback..."></textarea><div class="text_wrapper__i87JK feedback_markdown-tip__xldJV" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400"><svg fill="none" height="14" viewBox="0 0 22 14" width="22" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M19.5 1.25H2.5C1.80964 1.25 1.25 1.80964 1.25 2.5V11.5C1.25 12.1904 1.80964 12.75 2.5 12.75H19.5C20.1904 12.75 20.75 12.1904 20.75 11.5V2.5C20.75 1.80964 20.1904 1.25 19.5 1.25ZM2.5 0C1.11929 0 0 1.11929 0 2.5V11.5C0 12.8807 1.11929 14 2.5 14H19.5C20.8807 14 22 12.8807 22 11.5V2.5C22 1.11929 20.8807 0 19.5 0H2.5ZM3 3.5H4H4.25H4.6899L4.98715 3.82428L7 6.02011L9.01285 3.82428L9.3101 3.5H9.75H10H11V4.5V10.5H9V6.79807L7.73715 8.17572L7 8.97989L6.26285 8.17572L5 6.79807V10.5H3V4.5V3.5ZM15 7V3.5H17V7H19.5L17 9.5L16 10.5L15 9.5L12.5 7H15Z" fill="var(--ds-gray-700)" fill-rule="evenodd"></path></svg>supported.</div></div><div class="feedback_actions___tqt_" style="justify-content:flex-end"><button type="submit" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Send</span></button></div></form></div></div></div></div></div><aside class="toc_toc__a_Nu9 toc_hasSecondaryNav__Rt7vn"><div class="toc_tocHeader__6rJ0E"><span>On this page</span></div><ul><li class="toc_tocItem__Q3ii6 toc_active__S_24S" id="toc_start-with-an-idea"><a href="#start-with-an-idea" data-zone="null" class="link_link__hbWKh">Start with an idea</a></li><li class="toc_tocItem__Q3ii6" id="toc_iterate-quickly-while-building-your-product"><a href="#iterate-quickly-while-building-your-product" data-zone="null" class="link_link__hbWKh">Iterate quickly while building your product</a></li><li class="toc_tocItem__Q3ii6 toc_level-2__1tfXK" id="toc_infrastructure-from-your-code"><a href="#infrastructure-from-your-code" data-zone="null" class="link_link__hbWKh">Infrastructure from your code</a></li><li class="toc_tocItem__Q3ii6" id="toc_use-your-favorite-developer-tools"><a href="#use-your-favorite-developer-tools" data-zone="null" class="link_link__hbWKh">Use your favorite developer tools</a></li><li class="toc_tocItem__Q3ii6" id="toc_stay-fast-and-secure"><a href="#stay-fast-and-secure" data-zone="null" class="link_link__hbWKh">Stay fast and secure</a></li><li class="toc_tocItem__Q3ii6 toc_level-2__1tfXK" id="toc_observability"><a href="#observability" data-zone="null" class="link_link__hbWKh">Observability</a></li><li class="toc_tocItem__Q3ii6 toc_level-2__1tfXK" id="toc_security"><a href="#security" data-zone="null" class="link_link__hbWKh">Security</a></li><li class="toc_tocItem__Q3ii6 toc_level-2__1tfXK" id="toc_start-building-today"><a href="#start-building-today" data-zone="null" class="link_link__hbWKh">Start building today</a></li></ul><div class="mx-0 my-[8px] h-[1px] w-full border-0 border-b border-solid border-[var(--accents-2)]"></div><div class="flex items-center justify-end gap-x-2 h-[40px] [&>a]:flex-1"></div></aside></div></main><footer class="geist-footer_footer__pIcfx footer_marketingFooterContainer__cJMpP border-0" data-version="v1" data-variant="elevated"><nav aria-label="Vercel Directory"><div class="footer_marketingFooter__l2bjL"><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Products</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="/ai" style="font-feature-settings:'ss05'" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">AI</a></li><li class="geist-footer_item__Hte4A"><a href="/enterprise" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Enterprise</a></li><li class="geist-footer_item__Hte4A"><a href="/fluid" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Fluid Compute</a></li><li class="geist-footer_item__Hte4A"><a href="/solutions/nextjs" data-zone="vercel-site" class="link_link__hbWKh link_secondary__F1rqx">Next.js</a></li><li class="geist-footer_item__Hte4A"><a href="/products/observability" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Observability</a></li><li class="geist-footer_item__Hte4A"><a href="/products/previews" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Previews</a></li><li class="geist-footer_item__Hte4A"><a href="/products/rendering" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Rendering</a></li><li class="geist-footer_item__Hte4A"><a href="/security" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Security</a></li><li class="geist-footer_item__Hte4A"><a href="/solutions/turborepo" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Turbo</a></li><li class="geist-footer_item__Hte4A"><a href="https://v0.dev/" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_external__0a5cc link_secondary__F1rqx">v0<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z" fill="currentColor"/></svg></a></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Resources</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="https://vercel.community/" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_external__0a5cc link_secondary__F1rqx">Community<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z" fill="currentColor"/></svg></a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/docs">Docs</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/guides">Guides</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/help">Help</a></li><li class="geist-footer_item__Hte4A"><a href="/integrations" data-zone="vercel-site" class="link_link__hbWKh link_secondary__F1rqx">Integrations</a></li><li class="geist-footer_item__Hte4A"><a href="/pricing" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Pricing</a></li><li class="geist-footer_item__Hte4A"><a href="/resources" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Resources</a></li><li class="geist-footer_item__Hte4A"><a href="/partners/solution-partners" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Solution Partners</a></li><li class="geist-footer_item__Hte4A"><a href="/templates" data-zone="vercel-site" class="link_link__hbWKh link_secondary__F1rqx">Templates</a></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Company</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="/about" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">About</a></li><li class="geist-footer_item__Hte4A"><a href="/blog" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Blog</a></li><li class="geist-footer_item__Hte4A"><a href="/careers" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Careers</a></li><li class="geist-footer_item__Hte4A"><a href="/changelog" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Changelog</a></li><li class="geist-footer_item__Hte4A"><a href="/contact" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Contact Us</a></li><li class="geist-footer_item__Hte4A"><a href="/customers" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Customers</a></li><li class="geist-footer_item__Hte4A"><a href="/partners" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Partners</a></li><li class="geist-footer_item__Hte4A"><a href="/legal/privacy-policy" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Privacy Policy</a></li><li class="footer_legalButton__eSfwa"><button type="submit" aria-haspopup="true" aria-expanded="false" aria-controls="menu-«R2jber95nb»" aria-label="Legal" data-testid="footer/legal-button" data-geist-menu-button="" data-is-open="false" id="menu-button-«R2jber95nbH1»" style="--geist-icon-size:16px" class="button_base__BjwbK reset_reset__KRyvc footer_legalMenuButton__7D9MK" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1"><span class="button_content__1aE1_ button_flex__fCY56 button_center__nyfP_"><span class="footer_link__8OH36 footer_secondary__2yfhO" style="display:flex;align-items:center;gap:2px;width:100%">Legal<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:16px;height:16px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.0607 6.74999L11.5303 7.28032L8.7071 10.1035C8.31657 10.4941 7.68341 10.4941 7.29288 10.1035L4.46966 7.28032L3.93933 6.74999L4.99999 5.68933L5.53032 6.21966L7.99999 8.68933L10.4697 6.21966L11 5.68933L12.0607 6.74999Z" fill="currentColor"/></svg></span></span></button></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Social</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="https://github.com/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 1.46252C4.40875 1.46252 1.5 4.37029 1.5 7.96032C1.5 10.8356 3.36062 13.2642 5.94438 14.1251C6.26937 14.182 6.39125 13.987 6.39125 13.8165C6.39125 13.6621 6.38313 13.1504 6.38313 12.6063C4.75 12.9068 4.3275 12.2083 4.1975 11.8428C4.12437 11.6559 3.8075 11.0793 3.53125 10.9249C3.30375 10.8031 2.97875 10.5026 3.52312 10.4945C4.035 10.4863 4.40062 10.9656 4.5225 11.1605C5.1075 12.1433 6.04188 11.8671 6.41563 11.6966C6.4725 11.2742 6.64313 10.9899 6.83 10.8275C5.38375 10.665 3.8725 10.1046 3.8725 7.61919C3.8725 6.91255 4.12438 6.32775 4.53875 5.87291C4.47375 5.71046 4.24625 5.04444 4.60375 4.15099C4.60375 4.15099 5.14812 3.98042 6.39125 4.81701C6.91125 4.67081 7.46375 4.59771 8.01625 4.59771C8.56875 4.59771 9.12125 4.67081 9.64125 4.81701C10.8844 3.9723 11.4288 4.15099 11.4288 4.15099C11.7863 5.04444 11.5588 5.71046 11.4938 5.87291C11.9081 6.32775 12.16 6.90443 12.16 7.61919C12.16 10.1127 10.6406 10.665 9.19438 10.8275C9.43 11.0305 9.63313 11.4204 9.63313 12.0296C9.63313 12.8987 9.625 13.5972 9.625 13.8165C9.625 13.987 9.74687 14.1901 10.0719 14.1251C11.3622 13.6896 12.4835 12.8606 13.2779 11.7547C14.0722 10.6488 14.4997 9.32178 14.5 7.96032C14.5 4.37029 11.5913 1.46252 8 1.46252Z" fill="currentColor"/></svg>GitHub</a></li><li class="geist-footer_item__Hte4A"><a href="https://linkedin.com/company/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C2.67157 2 2 2.67157 2 3.5V12.5C2 13.3284 2.67157 14 3.5 14H12.5C13.3284 14 14 13.3284 14 12.5V3.5C14 2.67157 13.3284 2 12.5 2H3.5ZM4.74556 5.5C5.21057 5.5 5.5 5.16665 5.5 4.75006C5.49133 4.3241 5.21057 4 4.75438 4C4.29824 4 4 4.3241 4 4.75006C4 5.16665 4.28937 5.5 4.73687 5.5H4.74556ZM5.5 6.5V12H4V6.5H5.5ZM7 12H8.5V8.89479C8.5 8.89479 8.60415 7.78962 9.55208 7.78962C10.5 7.78962 10.5 9.02275 10.5 9.02275V12H12V8.8133C12 7.13837 11.25 6.5025 10.125 6.5025C9 6.5025 8.5 7.27778 8.5 7.27778V6.5025H7.00005C7.02383 7.01418 7 12 7 12Z" fill="currentColor"/></svg>LinkedIn</a></li><li class="geist-footer_item__Hte4A"><a href="https://x.com/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.60022 2H5.80022L8.78759 6.16842L12.4002 2H14.0002L9.5118 7.17895L14.4002 14H10.2002L7.21285 9.83158L3.60022 14H2.00022L6.48864 8.82105L1.60022 2ZM10.8166 12.8L3.93657 3.2H5.18387L12.0639 12.8H10.8166Z" fill="currentColor"/></svg> Twitter</a></li><li class="geist-footer_item__Hte4A"><a href="https://youtube.com/@VercelHQ" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.4695 3.39273C14.0722 3.55407 14.5459 4.02773 14.7073 4.63046C14.9988 5.72183 15 8.00023 15 8.00023C15 8.00023 15 10.2786 14.7073 11.37C14.5459 11.9728 14.0722 12.4464 13.4695 12.6077C12.3782 12.9005 7.99998 12.9005 7.99998 12.9005C7.99998 12.9005 3.62183 12.9005 2.53045 12.6077C1.92773 12.4464 1.45407 11.9728 1.29272 11.37C1 10.2786 1 8.00023 1 8.00023C1 8.00023 1 5.72183 1.29272 4.63046C1.45407 4.02773 1.92773 3.55407 2.53045 3.39273C3.62183 3.10001 7.99998 3.10001 7.99998 3.10001C7.99998 3.10001 12.3782 3.10001 13.4695 3.39273ZM10.2362 8.00046L6.59906 10.1002V5.90068L10.2362 8.00046Z" fill="currentColor"/></svg>YouTube</a></li></ul></div><a href="/home" data-zone="vercel-marketing" class="link_link__hbWKh footer_logoVercel__Yjmd9"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:16px;height:32px;color:var(--ds-gray-1000)" viewBox="0 0 16 16" width="16" aria-label="Vercel logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 1L16 15H0L8 1Z" fill="currentColor"/></svg></a></div><div class="footer_statusRow__FHZde"><a href="https://vercel-status.com" rel="noopener" target="_blank" data-no-border="true" data-testid="footer/status" data-zone="null" class="link_link__hbWKh status-indicator_link__OFbPq"><div class="status-indicator_content__Lqlf4 status-indicator_noBorder__3Wyse"><span class="status-indicator_indicator__Wc_JX status-indicator_secondary__Aa8mG" data-testid="footer/status/secondary"></span><p class="text_wrapper__i87JK status-indicator_statusText__7P9EM status-indicator_secondary__Aa8mG geist-ellipsis" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400">Loading status…</p></div></a><fieldset class="tailwind theme-switcher_root__DrzBE ml-auto" data-small=""><legend class="sr-only">Select a display theme:</legend><span style="height:100%"><input aria-label="system" id="theme-switch-system-«R2jer95nb»" type="radio" value="system"/><label for="theme-switch-system-«R2jer95nb»"><span class="sr-only">system</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 3.25C0.5 1.45507 1.95507 0 3.75 0H8.25C10.0449 0 11.5 1.45507 11.5 3.25V11.25V12H10.75H1.25H0.5V11.25V3.25ZM3.75 1.5C2.7835 1.5 2 2.2835 2 3.25V10.5H10V3.25C10 2.2835 9.2165 1.5 8.25 1.5H3.75ZM3 3.5C3 2.94772 3.44772 2.5 4 2.5H8C8.55228 2.5 9 2.94772 9 3.5V7H3V3.5ZM6.5 9.5H9V8H6.5V9.5Z" fill="currentColor" transform="translate(2.5, 2)"/> </svg></label></span><span style="height:100%"><input aria-label="light" id="theme-switch-light-«R2jer95nb»" type="radio" value="light"/><label for="theme-switch-light-«R2jer95nb»"><span class="sr-only">light</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.75 1V0.25H6.25V1V1.25V2H7.75V1.25V1ZM7 9C8.10457 9 9 8.10457 9 7C9 5.89543 8.10457 5 7 5C5.89543 5 5 5.89543 5 7C5 8.10457 5.89543 9 7 9ZM7 10.5C8.933 10.5 10.5 8.933 10.5 7C10.5 5.067 8.933 3.5 7 3.5C5.067 3.5 3.5 5.067 3.5 7C3.5 8.933 5.067 10.5 7 10.5ZM7.75 12V12.75V13V13.75H6.25V13V12.75V12H7.75ZM12 6.25H12.75H13H13.75V7.75H13H12.75H12V6.25ZM1 6.25H0.25V7.75H1H1.25H2V6.25H1.25H1ZM10.0052 2.93414L10.5355 2.40381L10.7123 2.22703L11.2426 1.6967L12.3033 2.75736L11.773 3.28769L11.5962 3.46447L11.0659 3.9948L10.0052 2.93414ZM2.22703 10.7123L1.6967 11.2426L2.75736 12.3033L3.28769 11.773L3.46447 11.5962L3.9948 11.0659L2.93414 10.0052L2.40381 10.5355L2.22703 10.7123ZM2.93414 3.9948L2.40381 3.46447L2.22703 3.28769L1.6967 2.75736L2.75736 1.6967L3.28769 2.22703L3.46447 2.40381L3.9948 2.93414L2.93414 3.9948ZM10.7123 11.773L11.2426 12.3033L12.3033 11.2426L11.773 10.7123L11.5962 10.5355L11.0659 10.0052L10.0052 11.0659L10.5355 11.5962L10.7123 11.773Z" fill="currentColor" transform="translate(1.25, 1.25)" /></svg></label></span><span style="height:100%"><input aria-label="dark" id="theme-switch-dark-«R2jer95nb»" type="radio" value="dark"/><label for="theme-switch-dark-«R2jer95nb»"><span class="sr-only">dark</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 0.25V1V1.5H11L11.75 1.5V3H11H10.5V3.5V4.25H9V3.5V3H8.5H7.75V1.5H8.5H9V1V0.25H10.5ZM3.25514 2.75496C2.33413 3.53491 1.75 4.69972 1.75 6C1.75 8.34721 3.65279 10.25 6 10.25C7.30029 10.25 8.4651 9.66587 9.24505 8.74485C9.16377 8.74827 9.08207 8.74999 9 8.74999C5.82436 8.74999 3.25 6.17563 3.25 2.99999C3.25 2.91792 3.25172 2.83623 3.25514 2.75496ZM0.25 6C0.25 3.51072 1.83142 1.39271 4.042 0.592193L5.00256 1.55275C4.83933 2.00347 4.75 2.49047 4.75 2.99999C4.75 5.3472 6.65279 7.24999 9 7.24999C9.50953 7.24999 9.99653 7.16065 10.4473 6.99743L11.4078 7.95798C10.6073 10.1686 8.48929 11.75 6 11.75C2.82436 11.75 0.25 9.17564 0.25 6Z" fill="currentColor" transform="translate(2.25, 2.25)" /></svg></label></span></fieldset></div></nav></footer><!--$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><!--/$--><!--$--><!--/$--><!--$--><!--/$--><!--$--><!--/$--><!--$--><!--/$--><span></span><!--$--><script type="application/json" data-flag-values="true">"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..RJWZbGFcVqS6SaB_.Pbr3T9YYIcgfLGfh-PDLqNxr5wadv_5VJWEABh-HegZm8sO0sqBbyEZUA6CFGSJIpHwXxJ-IYG1lKfPKcsHVDdorBpzi-nYgvlr7l4XK5QKbF2vcLs68Nw.xcKgHUtFmuW84PARwU93Ng"</script><!--/$--><script src="/vc-ap-vercel-docs/_next/static/chunks/webpack-c8494a086ef55e2f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[87823,[],\"\"]\n3:I[98579,[],\"\"]\n6:I[60647,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"DocsMetadata\"]\n7:I[25700,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chun"])</script><script>self.__next_f.push([1,"ks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"PageInfo\"]\n8:I[24651,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/"])</script><script>self.__next_f.push([1,"83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Link\"]\na:I[55024,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c"])</script><script>self.__next_f.push([1,"12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"ProductsSection\"]\nb:I[4697,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b"])</script><script>self.__next_f.push([1,"7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"LastUpdated\"]\nc:I[58190,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24"])</script><script>self.__next_f.push([1,"ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"PrevNextNav\"]\nd:I[55001,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2"])</script><script>self.__next_f.push([1,"f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Feedback\"]\ne:I[25576,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"ToC\"]\nf:"])</script><script>self.__next_f.push([1,"I[3565,[],\"OutletBoundary\"]\n12:I[3565,[],\"ViewportBoundary\"]\n14:I[3565,[],\"MetadataBoundary\"]\n16:I[31722,[],\"\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/media/569ce4b8f30dc480-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/vc-ap-vercel-docs/_next/static/media/93f479601ee12b01.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/e23931f537267d5b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/8604571e2a880759.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/e122c19221bacfe3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/b7d8aa6d16e9a8ba.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/cb7d8ca32d5257d0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/4bec747078d5ac78.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/c589ce71a3a0bc97.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/dc1085e7e696021b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/89a8888cb97a7d81.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/a9d9ee0d8351a1c0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/90db48acd7590ba7.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/68876113637876f1.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/1334fce3c3cb43e3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/219a105f176f472e.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/31d74e8777669b9f.css?dpl=d"])</script><script>self.__next_f.push([1,"pl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/02aeb390aa7f3018.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n:HL[\"/vc-ap-vercel-docs/_next/static/css/dbeadbd645235116.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"nMUd2ML6fIwzBeNf6rRp3\",\"p\":\"/vc-ap-vercel-docs\",\"c\":[\"\",\"flg~eyJhbGciOiJIUzI1NiJ9._f0.J5_PHNhF0eNlz12XstHA9IR6iaoFEWSwfgJGLCvAJWM\",\"docs\"],\"i\":false,\"f\":[[[\"\",{\"children\":[[\"rootFlagsCode\",\"flg~eyJhbGciOiJIUzI1NiJ9._f0.J5_PHNhF0eNlz12XstHA9IR6iaoFEWSwfgJGLCvAJWM\",\"d\"],{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true]}],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"rootFlagsCode\",\"flg~eyJhbGciOiJIUzI1NiJ9._f0.J5_PHNhF0eNlz12XstHA9IR6iaoFEWSwfgJGLCvAJWM\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/e23931f537267d5b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/8604571e2a880759.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/e122c19221bacfe3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/b7d8aa6d16e9a8ba.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/cb7d8ca32d5257d0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/4bec747078d5ac78.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L4\"]}],{\"children\":[\"docs\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/c589ce71a3a0bc97.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/dc1085e7e696021b.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/89a8888cb97a7d81.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/a9d9ee0d8351a1c0.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/90db48acd7590ba7.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/68876113637876f1.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"7\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/1334fce3c3cb43e3.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"8\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/219a105f176f472e.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L5\"]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"div\",null,{\"className\":\"content_content__thPFQ\",\"children\":[[\"$\",\"$L6\",null,{\"meta\":{\"title\":\"Vercel Documentation\",\"description\":\"Vercel is a developer cloud to build and deploy web applications.\",\"openGraph\":{\"title\":\"Vercel Documentation\",\"description\":\"Vercel is a developer cloud to build and deploy web applications.\",\"url\":\"https://vercel.com/docs\",\"type\":\"website\",\"images\":[{\"url\":\"/api/dynamic-og?title=Vercel%20Documentation\",\"alt\":\"Vercel Documentation\"}]},\"alternates\":{\"canonical\":\"https://vercel.com/docs\"}}}],null,[\"$\",\"$L7\",null,{}],[\"$\",\"div\",null,{\"className\":\"linked-heading_hasDescription__CyYiJ linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"2.5rem\",\"--text-line-height\":\"3.5rem\",\"--text-letter-spacing\":\"-0.058125rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"vercel-documentation\"}],null,null,[\"$\",\"span\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"children\":\"Vercel Documentation\"}],false,null,null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_description__ijcxY\",\"children\":\"Vercel is a developer cloud to build and deploy web applications.\"}]]}],null,[\"$\",\"div\",null,{\"className\":\"[\u0026_[data-geist-note]_p]:my-0 [\u0026_code_p]:my-0 [\u0026_code_p]:contents [\u0026_p]:leading-[1.6] [\u0026_ol]:p-0 [\u0026_ol]:pl-4 [\u0026_ol]:list-decimal [\u0026_ol]:ml-3.5 [\u0026_[class*='container']_p]:m-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"2rem\",\"--text-line-height\":\"2.5rem\",\"--text-letter-spacing\":\"-0.049375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"start-with-an-idea\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#start-with-an-idea\",\"children\":[\"Start with an idea\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Vercel builds tools to help you create products faster.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Like \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"https://v0.dev/\",\"children\":\"v0\"}],\", which is your web development assistant. Paste a screenshot or write a few sentences and v0 will generate a starting point for your next app, including the code for how it looks \",[\"$\",\"em\",null,{\"children\":\"and\"}],\" how it works. v0 then connects to Vercel, takes your code, and creates a URL you can share.\"]}],\"\\n\",\"$L9\",\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"2rem\",\"--text-line-height\":\"2.5rem\",\"--text-letter-spacing\":\"-0.049375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"iterate-quickly-while-building-your-product\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#iterate-quickly-while-building-your-product\",\"children\":[\"Iterate quickly while building your product\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"The first version of your product isn't perfect, so you need to iterate and try things.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"You can ask v0 to make updates for you, or if you prefer, export the code to your editor and start building locally. When you've finished adding your new feature, you want to test and make sure it works correctly on different browsers and devices \",[\"$\",\"em\",null,{\"children\":\"before\"}],\" you update your live application.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Vercel integrates with tools like GitHub where you can save snapshots of your codebase for every change. For example, let's say you send your latest code changes to GitHub in a pull request. Vercel automatically creates a new URL from your changes and sends you a link to review before merging.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"1.5rem\",\"--text-line-height\":\"2rem\",\"--text-letter-spacing\":\"-0.029375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"infrastructure-from-your-code\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#infrastructure-from-your-code\",\"children\":[\"Infrastructure from your code\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"How did that URL get created? Vercel took care of all the infrastructure automation for you:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"my-3 ml-6 list-none p-0 [\u0026\u003eli]:before:absolute [\u0026\u003eli]:before:-ml-3.5 [\u0026\u003eli]:before:inline-block [\u0026\u003eli]:before:text-[var(--accents-4)] [\u0026\u003eli]:before:content-['–']\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":\"It examined your code to understand what tools you're working with\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":\"It installed the necessary dependencies into a temporary, secure sandbox\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":\"It ran compute to build your application from these dependencies\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":\"It took the build output and generated the cloud infrastructure needed to run your app\"}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":\"It assigned and secured a domain so you can access your app through a URL\"}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"This is all happening inside of an automatically generated \",[\"$\",\"em\",null,{\"children\":\"preview\"}],\" environment on Vercel — a place where you can safely iterate and make changes without affecting your application. For example, you might want to connect to a different database to prevent changing your live data.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"If your application works correctly and you're happy with the changes, you can merge this new feature into your main codebase. Once again, Vercel will automatically create and build a new URL for you, in a separate \",[\"$\",\"em\",null,{\"children\":\"production\"}],\" environment.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Just like that, your application is now live and updated around the world. Make a mistake? Don't sweat it — you can instantly go back to your previous version in a few clicks.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"2rem\",\"--text-line-height\":\"2.5rem\",\"--text-letter-spacing\":\"-0.049375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"use-your-favorite-developer-tools\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#use-your-favorite-developer-tools\",\"children\":[\"Use your favorite developer tools\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Vercel helps your build any way your prefer, whether that is a handful of HTML files or a powerful JavaScript framework. While you don't \",[\"$\",\"em\",null,{\"children\":\"need\"}],\" to use a framework, these abstractions can help you build better products.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Frameworks include components and optimizations to help improve your \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"https://vercel.com/blog/how-core-web-vitals-affect-seo\",\"children\":\"Core Web Vitals\"}],\", which is how search engines determine the speed and quality of your application. Your vitals affect your page ranking in search results, so it's important to pay attention and optimize them.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Frameworks also simplify how you build common patterns, like routing between pages or fetching and displaying data from a database. Vercel supports over 30 different frameworks with zero-configuration.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"We are the creators and maintainers of \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"https://nextjs.org\",\"children\":\"Next.js\"}],\", a framework for building React applications. We also help fund the full-time development of \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"https://svelte.dev\",\"children\":\"Svelte\"}],\", as well as support other open-source frameworks.\"]}],\"\\n\",[\"$\",\"$La\",null,{}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"2rem\",\"--text-line-height\":\"2.5rem\",\"--text-letter-spacing\":\"-0.049375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"stay-fast-and-secure\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#stay-fast-and-secure\",\"children\":[\"Stay fast and secure\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Vercel's developer platform understands the tools and frameworks you're using. This enables us to optimize and secure your application automatically in ways that are normally difficult and time consuming.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Instead of manually writing code to define your application infrastructure, Vercel can automatically convert the output from your framework into infrastructure. For example, we manage:\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"my-3 ml-6 list-none p-0 [\u0026\u003eli]:before:absolute [\u0026\u003eli]:before:-ml-3.5 [\u0026\u003eli]:before:inline-block [\u0026\u003eli]:before:text-[var(--accents-4)] [\u0026\u003eli]:before:content-['–']\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/edge-network\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Networking\"}]}],\": We help make your application fast globally\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/domains\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Domains\"}]}],\": We can manage your domains, including DNS, SSL certificates, and nameservers\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/storage\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Storage\"}]}],\": We offer cache and object storage, as well as first-party database integrations\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/functions\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Compute\"}]}],\": We provide an autoscaling, distributed, and secure compute platform\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/deployments/builds\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"CI/CD\"}]}],\": We automatically deploy your application as you push to your git repository\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"1.5rem\",\"--text-line-height\":\"2rem\",\"--text-letter-spacing\":\"-0.029375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"observability\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#observability\",\"children\":[\"Observability\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"After shipping your application, you need to understand how it's performing in production. Vercel includes tools to help you view logs and traces, measure performance, and analyze traffic.\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"my-3 ml-6 list-none p-0 [\u0026\u003eli]:before:absolute [\u0026\u003eli]:before:-ml-3.5 [\u0026\u003eli]:before:inline-block [\u0026\u003eli]:before:text-[var(--accents-4)] [\u0026\u003eli]:before:content-['–']\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/runtime-logs\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Logging\"}]}],\": We allow you to view, search, and filter build/runtime logs to investigate issues and monitor your application.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/otel\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Tracing\"}]}],\": We support integrations with tracing tools like OpenTelemetry for deeper performance analysis.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/analytics\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Analytics\"}]}],\": We support first-party, privacy-friendly analytics for understanding how users interact with your application.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/observability\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Metrics\"}]}],\": We display and support querying of performance metrics like request counts, error rates, and API latencies.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"We also integrate with other observability tools and support draining logs to any service.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"1.5rem\",\"--text-line-height\":\"2rem\",\"--text-letter-spacing\":\"-0.029375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"security\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#security\",\"children\":[\"Security\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Vercel helps protect your web application and prevent unwanted traffic.\"}],\"\\n\",[\"$\",\"ul\",null,{\"className\":\"my-3 ml-6 list-none p-0 [\u0026\u003eli]:before:absolute [\u0026\u003eli]:before:-ml-3.5 [\u0026\u003eli]:before:inline-block [\u0026\u003eli]:before:text-[var(--accents-4)] [\u0026\u003eli]:before:content-['–']\",\"children\":[\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/vercel-firewall\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Platform Firewall\"}]}],\": We automatically block malicious requests and unwanted bots before they reach your application.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/security/ddos-mitigation\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"DDoS Protection\"}]}],\": We protect your application from traffic spikes caused by Distributed Denial of Service (DDoS) attacks.\"]}],\"\\n\",[\"$\",\"li\",null,{\"className\":\"mb-[10px] leading-[var(--line-height-primary)] text-[var(--font-size-primary)] [\u0026\u003ep]:m-0\",\"children\":[[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/security/vercel-waf\",\"children\":[\"$\",\"span\",null,{\"className\":\"strong_docsString__rhKq5\",\"children\":\"Web Application Firewall\"}]}],\": We allow you to define custom rules to protect from common attacks, web scrapers, and other unwanted traffic.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"We are compliant with SOC 2 Type 2, ISO 27001:2013, GDPR, PCI DSS, HIPAA, and other acronyms your security team asks about.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"linked-heading_container__iwdxj\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"text_wrapper__i87JK linked-heading_header__YpMmf headings_heading__DRlSP\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--text-color\":\"var(--ds-gray-1000)\",\"--text-size\":\"1.5rem\",\"--text-line-height\":\"2rem\",\"--text-letter-spacing\":\"-0.029375rem\",\"--text-weight\":\"600\"},\"data-components-heading\":true,\"onClick\":\"$undefined\",\"children\":[[\"$\",\"span\",null,{\"className\":\"linked-heading_target__xscdv linked-heading_offsetTop__uAoyO\",\"id\":\"start-building-today\"}],null,null,[\"$\",\"a\",null,{\"className\":\"linked-heading_title__mCMLh [\u0026\u003ep]:m-0\",\"href\":\"#start-building-today\",\"children\":[\"Start building today\",null]}],[\"$\",\"span\",null,{\"className\":\"linked-heading_permalink__pJ_q_\",\"children\":[\"$\",\"svg\",null,{\"className\":\"text-[0.6em]\",\"dangerouslySetInnerHTML\":{\"__html\":\"\u003cpath fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.46968 1.46968C10.1433 -0.203925 12.8567 -0.203923 14.5303 1.46968C16.2039 3.14329 16.2039 5.85674 14.5303 7.53034L12.0303 10.0303L10.9697 8.96968L13.4697 6.46968C14.5575 5.38186 14.5575 3.61816 13.4697 2.53034C12.3819 1.44252 10.6182 1.44252 9.53034 2.53034L7.03034 5.03034L5.96968 3.96968L8.46968 1.46968ZM11.5303 5.53034L5.53034 11.5303L4.46968 10.4697L10.4697 4.46968L11.5303 5.53034ZM1.46968 14.5303C3.14329 16.2039 5.85673 16.204 7.53034 14.5303L10.0303 12.0303L8.96968 10.9697L6.46968 13.4697C5.38186 14.5575 3.61816 14.5575 2.53034 13.4697C1.44252 12.3819 1.44252 10.6182 2.53034 9.53034L5.03034 7.03034L3.96968 5.96968L1.46968 8.46968C-0.203923 10.1433 -0.203925 12.8567 1.46968 14.5303Z\\\" fill=\\\"currentColor\\\"/\u003e\"},\"data-testid\":\"geist-icon\",\"height\":16,\"strokeLinejoin\":\"round\",\"style\":{\"verticalAlign\":\"$undefined\",\"width\":\"$undefined\",\"height\":\"$undefined\",\"color\":\"currentColor\"},\"viewBox\":\"0 0 16 16\",\"width\":16}]}],null,null]}],null]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Vercel provides tools to build your ideas. We integrate with dozens of \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"https://vercel.com/marketplace\",\"children\":\"popular databases\"}],\", cloud infrastructure providers like \",[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/docs/oidc/aws\",\"children\":\"AWS\"}],\", and more.\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":[\"$\",\"$L8\",null,{\"variant\":\"blend\",\"href\":\"/new\",\"children\":\"What will you ship?\"}]}]]}],null,[\"$\",\"$Lb\",null,{}],[\"$\",\"hr\",null,{\"className\":\"border-top-[1px] my-12 border-0 border-solid border-[var(--accents-2)] sm:my-9\"}],[\"$\",\"$Lc\",null,{}],[\"$\",\"div\",null,{\"className\":\"mb-6 mt-12\",\"children\":[\"$\",\"$Ld\",null,{\"label\":\"vercel\",\"type\":\"inline\"}]}]]}],[\"$\",\"$Le\",null,{\"children\":\"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:0:props:children:5:props:children\"}]],\"$undefined\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/31d74e8777669b9f.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/02aeb390aa7f3018.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/vc-ap-vercel-docs/_next/static/css/dbeadbd645235116.css?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$Lf\",null,{\"children\":[\"$L10\",\"$L11\",null]}]]}],{},null,false]},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"KGZWACFSi5bAE-3t48cqx\",{\"children\":[[\"$\",\"$L12\",null,{\"children\":\"$L13\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],[\"$\",\"$L14\",null,{\"children\":\"$L15\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$16\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"17:I[24610,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"GracefulHydrationErrorBoundary\"]\n18:I[83631,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"PrimaryNavigationProvid"])</script><script>self.__next_f.push([1,"er\"]\n19:I[23135,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"RootUserProvider\"]\n1a:I[41250,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"RootTeamProvider\"]\n1b:I[10741,[\""])</script><script>self.__next_f.push([1,"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"TelemetryClient\"]\n1c:I[68253,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"GeistProvider\"]\n1d:I[19413,[\"43527\",\"static/chunks/"])</script><script>self.__next_f.push([1,"43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"PrefetchCrossZoneLinksProvider\"]\n1e:I[84522,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"SwitcherProvider\"]\n1f:I[73149,[\"43527\",\"static/chunks/4352"])</script><script>self.__next_f.push([1,"7-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5000\",\"static/chunks/5000-caf815feba8ab8ef.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"44228\",\"static/chunks/app/%5BrootFlagsCode%5D/not-found-74639adaa4e2368f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"NotFound\"]\n20:I[88348,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"CompatRouterAllowed\"]\n21:I[37908,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?"])</script><script>self.__next_f.push([1,"dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"RootHooks\"]\n22:I[63927,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?"])</script><script>self.__next_f.push([1,"dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"\"]\n24:I[68806,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Analytics\"]\n25:I[63311,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\","])</script><script>self.__next_f.push([1,"\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"SpeedInsights\"]\n26:I[37760,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"ClientScripts\"]\n27:I[19413,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/5"])</script><script>self.__next_f.push([1,"5638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"PrefetchCrossZoneLinks\"]\n28:I[48169,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"LogoutScreen\"]\n29:\"$Sreact.suspense\"\n2b:I[28601,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/ch"])</script><script>self.__next_f.push([1,"unks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55491\",\"static/chunks/55491-d9d27d6389bea838.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28601\",\"static/chunks/28601-4b72ed3c86c61ae3.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19118\",\"static/chunks/app/%5BrootFlagsCode%5D/layout-611dd5086a9ed777.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Toasts\"]\n2d:I[12629,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/"])</script><script>self.__next_f.push([1,"20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"AnalyticsScripts\"]\n2e:I[16769,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"stat"])</script><script>self.__next_f.push([1,"ic/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"VaScrollTrack\"]\n2f:I[26805,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494"])</script><script>self.__next_f.push([1,"\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"FilteredNavigationProvider\"]\n30:I[75542,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Header\"]\n31:I[97490,[\"43527\",\"static/chun"])</script><script>self.__next_f.push([1,"ks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Sidebar\"]\n32:I[98585,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chu"])</script><script>self.__next_f.push([1,"nks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"Footer\"]\n33:I[16679,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chu"])</script><script>self.__next_f.push([1,"nks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"BrowserClientOnlyCommandMenu\"]\n34:I[31369,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPz"])</script><script>self.__next_f.push([1,"G\",\"23194\",\"static/chunks/23194-586394a89730582c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"55638\",\"static/chunks/55638-9ce4ba824cdcfab5.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"28157\",\"static/chunks/28157-15ace2ec00575a44.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1090\",\"static/chunks/1090-941de4170a94a1fc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"47900\",\"static/chunks/47900-16ae62be09da12f9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"91042\",\"static/chunks/91042-ff08b605bad64be7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"1981\",\"static/chunks/1981-19a9b035c831526b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"20402\",\"static/chunks/20402-6fa04dc0cac8362a.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"23135\",\"static/chunks/23135-0e926835d1d7aa0d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19583\",\"static/chunks/19583-7f58515b6a4b2cd0.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"74558\",\"static/chunks/74558-8387faa8e28b8c9f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"93494\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/layout-690bf2c32a191a8b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"HashRedirects\"]\n23:T47a,\nif (window.location.hostname === 'vercel.com' || window.location.search.includes('test-sift')) {\n (function() {\n var d = document;\n var w = window;\n var find = (s) =\u003e d.cookie.split('; ').find(r =\u003e r.startsWith(s));\n var sid;\n var row = find('vercel_session_id');\n if (row) {\n sid = row.replace('vercel_session_id=', '');\n } else {\n var a = new Uint32Array(5);\n crypto.getRandomValues(a);\n sid = btoa(a);\n d.cookie = \"vercel_session_id=\" + sid;\n }\n var _sift = w._sift = w._sift || [];\n _sift.push(['_setAccount', 'e0fb7b5a33']);\n _sift.push(['_setUserId', '']);\n _sift.push(['_setSessionId', sid]);\n _sift.push(['_trackPage"])</script><script>self.__next_f.push([1,"view']);\n var pathname = w.location.pathname;\n setInterval(() =\u003e {\n if (pathname !== w.location.pathname) {\n pathname = w.location.pathname;\n w._sift.push(['_trackPageview']);\n }\n }, 2000)\n\n if (!find('vercel_impersonate')) {\n w.addEventListener('load', () =\u003e {\n var e = d.createElement('script');\n e.src = '/_stream/external/cdn.sift.com/s.js';\n d.body.appendChild(e);\n });\n }\n })()\n}"])</script><script>self.__next_f.push([1,"4:[\"$\",\"html\",null,{\"className\":\"__variable_881a5c __variable_f5b710 uncontained tailwind tailwind-no-preflight\",\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"$L17\",null,{\"as\":\"body\",\"children\":[\"$\",\"$L18\",null,{\"value\":{\"primaryNavigation\":[{\"name\":\"Documentation\",\"href\":\"/docs\",\"posts\":[{\"name\":\"Platform\",\"href\":\"/docs/platform\",\"key\":\"platform\",\"hasHighlight\":true,\"posts\":[{\"name\":\"Get Started\",\"href\":\"/docs/getting-started-with-vercel\",\"description\":\"Build for the web and learn to use our platform\",\"highlight\":true,\"open\":false,\"posts\":[{\"name\":\"Step 1 – Projects \u0026 Deployments\",\"href\":\"/docs/getting-started-with-vercel/projects-deployments\",\"posts\":[{\"name\":\"Option 1 - Use a Template\",\"href\":\"/docs/getting-started-with-vercel/template\",\"singleFile\":true},{\"name\":\"Option 2 - Import an Existing Project\",\"href\":\"/docs/getting-started-with-vercel/import\",\"singleFile\":true}]},{\"name\":\"Step 2 – Add a Domain\",\"href\":\"/docs/getting-started-with-vercel/domains\",\"posts\":[{\"name\":\"Option 1 - Buy a domain\",\"href\":\"/docs/getting-started-with-vercel/buy-domain\",\"singleFile\":true},{\"name\":\"Option 2 - Transfer an existing domain\",\"href\":\"/docs/getting-started-with-vercel/use-existing\",\"singleFile\":true}]},{\"name\":\"Step 3 – Collaborate\",\"href\":\"/docs/getting-started-with-vercel/collaborate\",\"singleFile\":true},{\"name\":\"Next Steps\",\"href\":\"/docs/getting-started-with-vercel/next-steps\",\"singleFile\":true}]},{\"name\":\"Vercel Fundamentals\",\"href\":\"/docs/fundamentals\",\"description\":\"Learn about the core concepts of Vercel\",\"posts\":[{\"name\":\"What is Compute?\",\"href\":\"/docs/fundamentals/what-is-compute\",\"description\":\"Learn and understand the concept of compute\",\"singleFile\":true},{\"name\":\"What is Streaming?\",\"href\":\"/docs/fundamentals/what-is-streaming\",\"singleFile\":true}]},{\"name\":\"Incremental Migration\",\"href\":\"/docs/incremental-migration\",\"description\":\"Migrate your site to Vercel with minimum risk\",\"isProduct\":false,\"posts\":[{\"name\":\"Migration Guide\",\"href\":\"/docs/incremental-migration/migration-guide\"},{\"name\":\"Technical Guidelines\",\"href\":\"/docs/incremental-migration/technical-guidelines\"}]},{\"name\":\"Frameworks\",\"href\":\"/docs/frameworks\",\"description\":\"Deploy with the framework of your choice on our platform\",\"posts\":[{\"name\":\"Next.js\",\"href\":\"/docs/frameworks/nextjs\",\"singleFile\":true},{\"name\":\"SvelteKit\",\"href\":\"/docs/frameworks/sveltekit\",\"singleFile\":true},{\"name\":\"Astro\",\"href\":\"/docs/frameworks/astro\",\"singleFile\":true},{\"name\":\"Create React App\",\"href\":\"/docs/frameworks/create-react-app\",\"singleFile\":true},{\"name\":\"Gatsby\",\"href\":\"/docs/frameworks/gatsby\",\"singleFile\":true},{\"name\":\"Nuxt\",\"href\":\"/docs/frameworks/nuxt\",\"singleFile\":true},{\"name\":\"React Router\",\"href\":\"/docs/frameworks/react-router\",\"singleFile\":true},{\"name\":\"Remix\",\"href\":\"/docs/frameworks/remix\",\"singleFile\":true},{\"name\":\"Vite\",\"href\":\"/docs/frameworks/vite\",\"singleFile\":true},{\"name\":\"Supported Frameworks\",\"href\":\"/docs/frameworks/more-frameworks\"}]},{\"name\":\"Projects\",\"href\":\"/docs/projects/overview\",\"description\":\"A Project groups deployments and custom domains\",\"posts\":[{\"name\":\"Managing Projects\",\"href\":\"/docs/projects/managing-projects\"},{\"name\":\"Transferring a Project\",\"href\":\"/docs/projects/transferring-projects\"},{\"name\":\"Monorepos\",\"href\":\"/docs/monorepos\",\"posts\":[{\"name\":\"Turborepo\",\"href\":\"/docs/monorepos/turborepo\"},{\"name\":\"Nx\",\"href\":\"/docs/monorepos/nx\"},{\"name\":\"Remote Caching\",\"href\":\"/docs/monorepos/remote-caching\"},{\"name\":\"Monorepo FAQ\",\"href\":\"/docs/monorepos/monorepo-faq\"}]},{\"name\":\"Environment Variables\",\"href\":\"/docs/environment-variables\",\"posts\":[{\"name\":\"Managing Environment Variables\",\"href\":\"/docs/environment-variables/managing-environment-variables\",\"singleFile\":true},{\"name\":\"Shared Environment Variables\",\"href\":\"/docs/environment-variables/shared-environment-variables\",\"singleFile\":true},{\"name\":\"System Environment Variables\",\"href\":\"/docs/environment-variables/system-environment-variables\",\"singleFile\":true},{\"name\":\"Framework Environment Variables\",\"href\":\"/docs/environment-variables/framework-environment-variables\",\"singleFile\":true},{\"name\":\"Reserved Environment Variables\",\"href\":\"/docs/environment-variables/reserved-environment-variables\",\"singleFile\":true},{\"name\":\"Sensitive Environment Variables\",\"href\":\"/docs/environment-variables/sensitive-environment-variables\",\"singleFile\":true}]},{\"name\":\"Project Settings\",\"href\":\"/docs/project-configuration/project-settings\",\"posts\":[{\"name\":\"General Settings\",\"href\":\"/docs/project-configuration/general-settings\",\"singleFile\":true},{\"name\":\"Security Settings\",\"href\":\"/docs/project-configuration/security-settings\",\"singleFile\":true},{\"name\":\"Git Settings\",\"href\":\"/docs/project-configuration/git-settings\",\"singleFile\":true},{\"name\":\"vercel.json\",\"href\":\"/docs/project-configuration\",\"description\":\"Configure your project with vercel.json\",\"posts\":[{\"name\":\"Git Configuration\",\"href\":\"/docs/project-configuration/git-configuration\",\"singleFile\":true},{\"name\":\"Global Configuration\",\"href\":\"/docs/project-configuration/global-configuration\",\"singleFile\":true}]}]},{\"name\":\"Project Dashboard\",\"href\":\"/docs/projects/project-dashboard\"}]},{\"name\":\"Builds\",\"href\":\"/docs/deployments/builds\",\"description\":\"Learn how your projects are built and configured\",\"posts\":[{\"name\":\"Configure a Build\",\"href\":\"/docs/deployments/configure-a-build\",\"singleFile\":true},{\"name\":\"Package Managers\",\"href\":\"/docs/package-managers\",\"singleFile\":true},{\"name\":\"Managing Builds\",\"href\":\"/docs/deployments/managing-builds\",\"posts\":[{\"name\":\"Build Queues\",\"href\":\"/docs/builds/build-queues\"}]},{\"name\":\"Build Features\",\"href\":\"/docs/deployments/build-features\",\"singleFile\":true},{\"name\":\"Build Image Overview\",\"href\":\"/docs/deployments/build-image\",\"posts\":[{\"name\":\"Build Image\",\"href\":\"/docs/deployments/build-image/build-image\"},{\"name\":\"Build Image (legacy)\",\"href\":\"/docs/deployments/build-image/build-image-legacy\"}]},{\"name\":\"Troubleshoot a Build\",\"href\":\"/docs/deployments/troubleshoot-a-build\",\"singleFile\":true}]},{\"name\":\"Deployments\",\"href\":\"/docs/deployments\",\"description\":\"How your sites are generated and configured\",\"posts\":[{\"name\":\"Deploy to Vercel\",\"href\":\"/docs/deployments/deployment-methods\",\"posts\":[{\"name\":\"Git Integrations\",\"href\":\"/docs/git\",\"posts\":[{\"name\":\"Vercel for GitHub\",\"href\":\"/docs/git/vercel-for-github\"},{\"name\":\"Vercel for GitLab\",\"href\":\"/docs/git/vercel-for-gitlab\"},{\"name\":\"Vercel for Bitbucket\",\"href\":\"/docs/git/vercel-for-bitbucket\"},{\"name\":\"Vercel for Azure Pipelines\",\"href\":\"/docs/git/vercel-for-azure-pipelines\"}]},{\"name\":\"Vercel CLI\",\"href\":\"/docs/deployments/deploy-with-vercel-cli\",\"singleFile\":true},{\"name\":\"Deploy Hooks\",\"href\":\"/docs/deploy-hooks\",\"singleFile\":true},{\"name\":\"Deploy Button\",\"href\":\"/docs/deploy-button\",\"posts\":[{\"name\":\"Demo\",\"href\":\"/docs/deploy-button/demo\"},{\"name\":\"Build Settings\",\"href\":\"/docs/deploy-button/build-settings\"},{\"name\":\"Source\",\"href\":\"/docs/deploy-button/source\"},{\"name\":\"Callback\",\"href\":\"/docs/deploy-button/callback\"},{\"name\":\"Environment Variables\",\"href\":\"/docs/deploy-button/environment-variables\"},{\"name\":\"Integrations\",\"href\":\"/docs/deploy-button/integrations\"}]}]},{\"name\":\"Deployment Environments\",\"href\":\"/docs/deployments/environments\",\"posts\":[{\"name\":\"Local Development\",\"href\":\"/docs/deployments/local-env\",\"singleFile\":true},{\"name\":\"Pre-production\",\"href\":\"/docs/deployments/pre-production\",\"posts\":[{\"name\":\"Preview\",\"href\":\"/docs/deployments/environments#preview-environment-pre-production\",\"posts\":[{\"name\":\"Share a Preview Deployment\",\"href\":\"/docs/deployments/sharing-deployments\",\"singleFile\":true},{\"name\":\"Preview Deployment Suffix\",\"href\":\"/docs/deployments/preview-deployment-suffix\",\"singleFile\":true}]},{\"name\":\"Custom Environments\",\"href\":\"/docs/deployments/custom-environments\"}]},{\"name\":\"Production\",\"href\":\"/docs/deployments/production-env\",\"singleFile\":true}]},{\"name\":\"Accessing your Deployment\",\"href\":\"/docs/deployments/generated-urls\",\"singleFile\":true},{\"name\":\"Manage Deployments\",\"href\":\"/docs/deployments/managing-deployments\",\"posts\":[{\"name\":\"Promoting deployments\",\"href\":\"/docs/deployments/promoting-a-deployment\"},{\"name\":\"Instant Rollback\",\"href\":\"/docs/instant-rollback\"},{\"name\":\"Exclude Files\",\"href\":\"/docs/deployments/vercel-ignore\"},{\"name\":\"Skew Protection\",\"href\":\"/docs/skew-protection\"}]},{\"name\":\"Webhooks\",\"href\":\"/docs/webhooks\",\"posts\":[{\"name\":\"Webhooks API\",\"href\":\"/docs/webhooks/webhooks-api\"}]},{\"name\":\"Inspecting Open Graph Metadata\",\"href\":\"/docs/deployments/og-preview\",\"singleFile\":true},{\"name\":\"Claim Deployments\",\"href\":\"/docs/deployments/claim-deployments\",\"singleFile\":true}]},{\"name\":\"Domains\",\"href\":\"/docs/domains\",\"description\":\"Adding, deploying, redirecting and transferring domains\",\"isProduct\":true,\"posts\":[{\"name\":\"Working with Domains\",\"href\":\"/docs/domains/working-with-domains\",\"posts\":[{\"name\":\"View \u0026 Search Domains\",\"href\":\"/docs/domains/working-with-domains/working-with-domains/view-and-search-domains\",\"singleFile\":true},{\"name\":\"Add a Custom Domain\",\"href\":\"/docs/domains/add-a-domain\",\"singleFile\":true},{\"name\":\"Deploy or Redirect a Domain\",\"href\":\"/docs/domains/deploying-and-redirecting\",\"singleFile\":true},{\"name\":\"Remove a Domain\",\"href\":\"/docs/domains/remove-a-domain\",\"singleFile\":true},{\"name\":\"Renew a Domain\",\"href\":\"/docs/domains/renew-a-domain\",\"singleFile\":true},{\"name\":\"Transfer your Domains\",\"href\":\"/docs/domains/working-with-domains/transfer-your-domain\",\"singleFile\":true},{\"name\":\"Assign a Domain to an Environment\",\"href\":\"/docs/domains/add-a-domain-to-environment\",\"singleFile\":true},{\"name\":\"Assign a Domain to a Branch\",\"href\":\"/docs/domains/working-with-domains/assign-domain-to-a-git-branch\",\"singleFile\":true}]},{\"name\":\"Working with DNS\",\"href\":\"/docs/domains/working-with-dns\",\"posts\":[{\"name\":\"Manage DNS records\",\"href\":\"/docs/domains/managing-dns-records\",\"singleFile\":true}]},{\"name\":\"Working with Nameservers\",\"href\":\"/docs/domains/working-with-nameservers\",\"posts\":[{\"name\":\"Manage Nameservers\",\"href\":\"/docs/domains/managing-nameservers\",\"singleFile\":true}]},{\"name\":\"Working with SSL\",\"href\":\"/docs/domains/working-with-ssl\",\"posts\":[{\"name\":\"Custom SSL Certificate\",\"href\":\"/docs/domains/custom-SSL-certificate\",\"singleFile\":true}]},{\"name\":\"Supported Domains for Purchase\",\"href\":\"/docs/domains/supported-domains\"},{\"name\":\"Troubleshooting Domains\",\"href\":\"/docs/domains/troubleshooting\",\"singleFile\":true}]},{\"name\":\"Going Live Checklist\",\"href\":\"/docs/production-checklist\",\"description\":\"Pre-launch checklist for your project\",\"isProduct\":false,\"singleFile\":true,\"posts\":[]},{\"name\":\"Pricing\",\"href\":\"/docs/pricing\",\"description\":\"Pricing, plans, and spend management\",\"posts\":[{\"name\":\"Regional Pricing\",\"href\":\"/docs/pricing/regional-pricing\",\"posts\":[{\"name\":\"Cape Town, South Africa\",\"href\":\"/docs/pricing/regional-pricing/cpt1\"},{\"name\":\"Cleveland, USA\",\"href\":\"/docs/pricing/regional-pricing/cle1\"},{\"name\":\"Dublin, Ireland\",\"href\":\"/docs/pricing/regional-pricing/dub1\"},{\"name\":\"Frankfurt, Germany\",\"href\":\"/docs/pricing/regional-pricing/fra1\"},{\"name\":\"Hong Kong\",\"href\":\"/docs/pricing/regional-pricing/hkg1\"},{\"name\":\"London, UK\",\"href\":\"/docs/pricing/regional-pricing/lhr1\"},{\"name\":\"Mumbai, India\",\"href\":\"/docs/pricing/regional-pricing/bom1\"},{\"name\":\"Osaka, Japan\",\"href\":\"/docs/pricing/regional-pricing/kix1\"},{\"name\":\"Paris, France\",\"href\":\"/docs/pricing/regional-pricing/cdg1\"},{\"name\":\"Portland, USA\",\"href\":\"/docs/pricing/regional-pricing/pdx1\"},{\"name\":\"San Francisco, USA\",\"href\":\"/docs/pricing/regional-pricing/sfo1\"},{\"name\":\"São Paulo, Brazil\",\"href\":\"/docs/pricing/regional-pricing/gru1\"},{\"name\":\"Seoul, South Korea\",\"href\":\"/docs/pricing/regional-pricing/icn1\"},{\"name\":\"Singapore\",\"href\":\"/docs/pricing/regional-pricing/sin1\"},{\"name\":\"Stockholm, Sweden\",\"href\":\"/docs/pricing/regional-pricing/arn1\"},{\"name\":\"Sydney, Australia\",\"href\":\"/docs/pricing/regional-pricing/syd1\"},{\"name\":\"Tokyo, Japan\",\"href\":\"/docs/pricing/regional-pricing/hnd1\"},{\"name\":\"Washington, D.C. USA\",\"href\":\"/docs/pricing/regional-pricing/iad1\"}]},{\"name\":\"Spend Management\",\"href\":\"/docs/spend-management\",\"singleFile\":true,\"description\":\"Get notified about or trigger actions based on your account spend\"},{\"name\":\"Calculating Resource Usage\",\"href\":\"/docs/pricing/how-does-vercel-calculate-usage-of-resources\",\"singleFile\":true},{\"name\":\"Billing \u0026 Invoices\",\"href\":\"/docs/pricing/understanding-my-invoice\",\"singleFile\":true,\"posts\":[{\"name\":\"Pro Billing FAQ\",\"href\":\"/docs/plans/pro/billing\",\"singleFile\":true},{\"name\":\"Enterprise Billing FAQ\",\"href\":\"/docs/plans/enterprise/billing\",\"singleFile\":true}]},{\"name\":\"Manage \u0026 Optimize Usage\",\"href\":\"/docs/pricing/manage-and-optimize-usage\",\"posts\":[{\"name\":\"Networking\",\"href\":\"/docs/pricing/networking\",\"singleFile\":true},{\"name\":\"Serverless Functions\",\"href\":\"/docs/pricing/serverless-functions\",\"singleFile\":true},{\"name\":\"Edge Functions\",\"href\":\"/docs/pricing/edge-functions\",\"singleFile\":true},{\"name\":\"Edge Middleware\",\"href\":\"/docs/pricing/edge-middleware\",\"singleFile\":true},{\"name\":\"Builds\",\"href\":\"/docs/builds/managing-builds\",\"singleFile\":true},{\"name\":\"Remote Cache Artifacts\",\"href\":\"/docs/pricing/artifacts\",\"singleFile\":true},{\"name\":\"Edge Config\",\"href\":\"/docs/pricing/edge-config\",\"singleFile\":true},{\"name\":\"Incremental Static Regeneration\",\"href\":\"/docs/pricing/incremental-static-regeneration\",\"singleFile\":true},{\"name\":\"Data Cache\",\"href\":\"/docs/pricing/data-cache\",\"singleFile\":true},{\"name\":\"Observability\",\"href\":\"/docs/pricing/observability\",\"singleFile\":true},{\"name\":\"Image Optimization\",\"href\":\"/docs/image-optimization/managing-image-optimization-costs\",\"singleFile\":true},{\"name\":\"Legacy Metrics\",\"href\":\"/docs/pricing/legacy\",\"singleFile\":true}]},{\"name\":\"Plans\",\"href\":\"/docs/plans\",\"posts\":[{\"name\":\"Hobby\",\"href\":\"/docs/plans/hobby\",\"singleFile\":true},{\"name\":\"Pro\",\"href\":\"/docs/plans/pro\",\"posts\":[{\"name\":\"Trials\",\"href\":\"/docs/plans/pro/trials\",\"singleFile\":true}]},{\"name\":\"Enterprise\",\"href\":\"/docs/plans/enterprise\"}]}]},{\"name\":\"Resources\",\"href\":\"/docs/resources\",\"description\":\"Learn about account management, error handling, and more\",\"open\":false,\"posts\":[{\"name\":\"Dashboard\",\"href\":\"/docs/dashboard-features/\",\"description\":\"View and manage all aspects of the Vercel platform\",\"isProduct\":true,\"posts\":[{\"name\":\"Overview\",\"href\":\"/docs/dashboard-features/overview\"},{\"name\":\"Notifications\",\"href\":\"/docs/notifications\"},{\"name\":\"Command Menu\",\"href\":\"/docs/dashboard-features/command-menu\"},{\"name\":\"Support Center\",\"href\":\"/docs/dashboard-features/support-center\"}]},{\"name\":\"Account Management\",\"href\":\"/docs/accounts\",\"description\":\"Create a Vercel identity and collaborate with teams\",\"isProduct\":true,\"posts\":[{\"name\":\"Create an Account\",\"href\":\"/docs/accounts/create-an-account\",\"singleFile\":true},{\"name\":\"Manage Emails\",\"href\":\"/docs/accounts/manage-emails\",\"singleFile\":true},{\"name\":\"Create a Team\",\"href\":\"/docs/accounts/create-a-team\",\"singleFile\":true},{\"name\":\"Team Roles \u0026 Permissions\",\"href\":\"/docs/accounts/team-members-and-roles\",\"posts\":[{\"name\":\"Access Roles\",\"href\":\"/docs/rbac/access-roles\",\"posts\":[{\"name\":\"Team Roles Reference\",\"href\":\"/docs/rbac/access-roles/team-level-roles\",\"singleFile\":true},{\"name\":\"Project Roles Reference\",\"href\":\"/docs/rbac/access-roles/project-level-roles\",\"singleFile\":true}]},{\"name\":\"Access Groups\",\"href\":\"/docs/rbac/access-groups\",\"singleFile\":true},{\"name\":\"Managing Team Members\",\"href\":\"/docs/rbac/managing-team-members\",\"singleFile\":true}]}]},{\"name\":\"Limits\",\"href\":\"/docs/limits\",\"description\":\"List of limits and limitations applied on Vercel\",\"isProduct\":true,\"posts\":[{\"name\":\"Fair use Guidelines\",\"href\":\"/docs/limits/fair-use-guidelines\"}]},{\"name\":\"General Errors\",\"href\":\"/docs/errors/error-list\",\"description\":\"General error handling guidance, that covers dashboard related errors\",\"singleFile\":true},{\"name\":\"Error Codes\",\"href\":\"/docs/errors\",\"description\":\"List of possible errors when interacting with Vercel\",\"isProduct\":false,\"hideChildrenSide\":true,\"posts\":[{\"name\":\"BODY_NOT_A_STRING_FROM_FUNCTION\",\"href\":\"/docs/errors/BODY_NOT_A_STRING_FROM_FUNCTION\"},{\"name\":\"DEPLOYMENT_BLOCKED\",\"href\":\"/docs/errors/DEPLOYMENT_BLOCKED\"},{\"name\":\"DEPLOYMENT_DISABLED\",\"href\":\"/docs/errors/DEPLOYMENT_DISABLED\"},{\"name\":\"DEPLOYMENT_DELETED\",\"href\":\"/docs/errors/DEPLOYMENT_DELETED\"},{\"name\":\"DEPLOYMENT_NOT_FOUND\",\"href\":\"/docs/errors/DEPLOYMENT_NOT_FOUND\"},{\"name\":\"DEPLOYMENT_NOT_READY_REDIRECTING\",\"href\":\"/docs/errors/DEPLOYMENT_NOT_READY_REDIRECTING\"},{\"name\":\"DEPLOYMENT_PAUSED\",\"href\":\"/docs/errors/DEPLOYMENT_PAUSED\"},{\"name\":\"DNS_HOSTNAME_EMPTY\",\"href\":\"/docs/errors/DNS_HOSTNAME_EMPTY\"},{\"name\":\"DNS_HOSTNAME_NOT_FOUND\",\"href\":\"/docs/errors/DNS_HOSTNAME_NOT_FOUND\"},{\"name\":\"DNS_HOSTNAME_RESOLVE_FAILED\",\"href\":\"/docs/errors/DNS_HOSTNAME_RESOLVE_FAILED\"},{\"name\":\"DNS_HOSTNAME_RESOLVED_PRIVATE\",\"href\":\"/docs/errors/DNS_HOSTNAME_RESOLVED_PRIVATE\"},{\"name\":\"DNS_HOSTNAME_SERVER_ERROR\",\"href\":\"/docs/errors/DNS_HOSTNAME_SERVER_ERROR\"},{\"name\":\"MIDDLEWARE_INVOCATION_FAILED\",\"href\":\"/docs/errors/MIDDLEWARE_INVOCATION_FAILED\"},{\"name\":\"MIDDLEWARE_INVOCATION_TIMEOUT\",\"href\":\"/docs/errors/MIDDLEWARE_INVOCATION_TIMEOUT\"},{\"name\":\"EDGE_FUNCTION_INVOCATION_FAILED\",\"href\":\"/docs/errors/EDGE_FUNCTION_INVOCATION_FAILED\"},{\"name\":\"EDGE_FUNCTION_INVOCATION_TIMEOUT\",\"href\":\"/docs/errors/EDGE_FUNCTION_INVOCATION_TIMEOUT\"},{\"name\":\"FALLBACK_BODY_TOO_LARGE\",\"href\":\"/docs/errors/FALLBACK_BODY_TOO_LARGE\"},{\"name\":\"FUNCTION_INVOCATION_FAILED\",\"href\":\"/docs/errors/FUNCTION_INVOCATION_FAILED\"},{\"name\":\"FUNCTION_INVOCATION_TIMEOUT\",\"href\":\"/docs/errors/FUNCTION_INVOCATION_TIMEOUT\"},{\"name\":\"FUNCTION_THROTTLED\",\"href\":\"/docs/errors/FUNCTION_THROTTLED\"},{\"name\":\"FUNCTION_PAYLOAD_TOO_LARGE\",\"href\":\"/docs/errors/FUNCTION_PAYLOAD_TOO_LARGE\"},{\"name\":\"FUNCTION_RESPONSE_PAYLOAD_TOO_LARGE\",\"href\":\"/docs/errors/FUNCTION_RESPONSE_PAYLOAD_TOO_LARGE\"},{\"name\":\"INFINITE_LOOP_DETECTED\",\"href\":\"/docs/errors/INFINITE_LOOP_DETECTED\"},{\"name\":\"INTERNAL_CACHE_ERROR\",\"href\":\"/docs/errors/INTERNAL_CACHE_ERROR\"},{\"name\":\"INTERNAL_CACHE_KEY_TOO_LONG\",\"href\":\"/docs/errors/INTERNAL_CACHE_KEY_TOO_LONG\"},{\"name\":\"INTERNAL_CACHE_LOCK_FULL\",\"href\":\"/docs/errors/INTERNAL_CACHE_LOCK_FULL\"},{\"name\":\"INTERNAL_CACHE_LOCK_TIMEOUT\",\"href\":\"/docs/errors/INTERNAL_CACHE_LOCK_TIMEOUT\"},{\"name\":\"INTERNAL_DEPLOYMENT_FETCH_FAILED\",\"href\":\"/docs/errors/INTERNAL_DEPLOYMENT_FETCH_FAILED\"},{\"name\":\"INTERNAL_EDGE_FUNCTION_INVOCATION_FAILED\",\"href\":\"/docs/errors/INTERNAL_EDGE_FUNCTION_INVOCATION_FAILED\"},{\"name\":\"INTERNAL_EDGE_FUNCTION_INVOCATION_TIMEOUT\",\"href\":\"/docs/errors/INTERNAL_EDGE_FUNCTION_INVOCATION_TIMEOUT\"},{\"name\":\"INTERNAL_OPTIMIZED_IMAGE_REQUEST_FAILED\",\"href\":\"/docs/errors/INTERNAL_OPTIMIZED_IMAGE_REQUEST_FAILED\"},{\"name\":\"INTERNAL_ROUTER_CANNOT_PARSE_PATH\",\"href\":\"/docs/errors/INTERNAL_ROUTER_CANNOT_PARSE_PATH\"},{\"name\":\"INVALID_IMAGE_OPTIMIZE_REQUEST\",\"href\":\"/docs/errors/INVALID_IMAGE_OPTIMIZE_REQUEST\"},{\"name\":\"OPTIMIZED_EXTERNAL_IMAGE_REQUEST_FAILED\",\"href\":\"/docs/errors/OPTIMIZED_EXTERNAL_IMAGE_REQUEST_FAILED\"},{\"name\":\"OPTIMIZED_EXTERNAL_IMAGE_REQUEST_INVALID\",\"href\":\"/docs/errors/OPTIMIZED_EXTERNAL_IMAGE_REQUEST_INVALID\"},{\"name\":\"OPTIMIZED_EXTERNAL_IMAGE_REQUEST_UNAUTHORIZED\",\"href\":\"/docs/errors/OPTIMIZED_EXTERNAL_IMAGE_REQUEST_UNAUTHORIZED\"},{\"name\":\"REQUEST_HEADER_TOO_LARGE\",\"href\":\"/docs/errors/REQUEST_HEADER_TOO_LARGE\"},{\"name\":\"ROUTER_EXTERNAL_TARGET_HANDSHAKE_ERROR\",\"href\":\"/docs/errors/ROUTER_EXTERNAL_TARGET_HANDSHAKE_ERROR\"},{\"name\":\"INTERNAL_FUNCTION_INVOCATION_FAILED\",\"href\":\"/docs/errors/INTERNAL_FUNCTION_INVOCATION_FAILED\"},{\"name\":\"INTERNAL_FUNCTION_INVOCATION_TIMEOUT\",\"href\":\"/docs/errors/INTERNAL_FUNCTION_INVOCATION_TIMEOUT\"},{\"name\":\"INTERNAL_FUNCTION_NOT_FOUND\",\"href\":\"/docs/errors/INTERNAL_FUNCTION_NOT_FOUND\"},{\"name\":\"INTERNAL_FUNCTION_NOT_READY\",\"href\":\"/docs/errors/INTERNAL_FUNCTION_NOT_READY\"},{\"name\":\"INTERNAL_MISSING_RESPONSE_FROM_CACHE\",\"href\":\"/docs/errors/INTERNAL_MISSING_RESPONSE_FROM_CACHE\"},{\"name\":\"INTERNAL_STATIC_REQUEST_FAILED\",\"href\":\"/docs/errors/INTERNAL_STATIC_REQUEST_FAILED\"},{\"name\":\"INTERNAL_UNARCHIVE_FAILED\",\"href\":\"/docs/errors/INTERNAL_UNARCHIVE_FAILED\"},{\"name\":\"INTERNAL_UNEXPECTED_ERROR\",\"href\":\"/docs/errors/INTERNAL_UNEXPECTED_ERROR\"},{\"name\":\"INVALID_REQUEST_METHOD\",\"href\":\"/docs/errors/INVALID_REQUEST_METHOD\"},{\"name\":\"MALFORMED_REQUEST_HEADER\",\"href\":\"/docs/errors/MALFORMED_REQUEST_HEADER\"},{\"name\":\"NO_RESPONSE_FROM_FUNCTION\",\"href\":\"/docs/errors/NO_RESPONSE_FROM_FUNCTION\"},{\"name\":\"NOT_FOUND\",\"href\":\"/docs/errors/NOT_FOUND\"},{\"name\":\"RANGE_END_NOT_VALID\",\"href\":\"/docs/errors/RANGE_END_NOT_VALID\"},{\"name\":\"RANGE_GROUP_NOT_VALID\",\"href\":\"/docs/errors/RANGE_GROUP_NOT_VALID\"},{\"name\":\"RANGE_MISSING_UNIT\",\"href\":\"/docs/errors/RANGE_MISSING_UNIT\"},{\"name\":\"RANGE_START_NOT_VALID\",\"href\":\"/docs/errors/RANGE_START_NOT_VALID\"},{\"name\":\"RANGE_UNIT_NOT_SUPPORTED\",\"href\":\"/docs/errors/RANGE_UNIT_NOT_SUPPORTED\"},{\"name\":\"TOO_MANY_RANGES\",\"href\":\"/docs/errors/TOO_MANY_RANGES\"},{\"name\":\"RESOURCE_NOT_FOUND\",\"href\":\"/docs/errors/RESOURCE_NOT_FOUND\"},{\"name\":\"ROUTER_CANNOT_MATCH\",\"href\":\"/docs/errors/ROUTER_CANNOT_MATCH\"},{\"name\":\"ROUTER_EXTERNAL_TARGET_CONNECTION_ERROR\",\"href\":\"/docs/errors/ROUTER_EXTERNAL_TARGET_CONNECTION_ERROR\"},{\"name\":\"ROUTER_EXTERNAL_TARGET_ERROR\",\"href\":\"/docs/errors/ROUTER_EXTERNAL_TARGET_ERROR\"},{\"name\":\"ROUTER_TOO_MANY_HAS_SELECTIONS\",\"href\":\"/docs/errors/ROUTER_TOO_MANY_HAS_SELECTIONS\"},{\"name\":\"TOO_MANY_FILESYSTEM_CHECKS\",\"href\":\"/docs/errors/TOO_MANY_FILESYSTEM_CHECKS\"},{\"name\":\"TOO_MANY_FORKS\",\"href\":\"/docs/errors/TOO_MANY_FORKS\"},{\"name\":\"URL_TOO_LONG\",\"href\":\"/docs/errors/URL_TOO_LONG\"}]},{\"name\":\"Release Phases\",\"href\":\"/docs/release-phases\",\"description\":\"Phases of the Vercel Product release cycle\",\"isProduct\":true,\"singleFile\":true,\"posts\":[{\"name\":\"Public Beta Agreement\",\"href\":\"/docs/release-phases/public-beta-agreement\",\"singleFile\":true}]},{\"name\":\"Private Registry\",\"href\":\"/docs/private-registry\",\"description\":\"Vercel's private registry\",\"singleFile\":true},{\"name\":\"Glossary\",\"href\":\"/docs/vercel-platform/glossary\",\"description\":\"Common terms and concepts used by Vercel\",\"singleFile\":true}]}]},{\"name\":\"Infrastructure\",\"href\":\"/docs/infrastructure/\",\"key\":\"infrastructure\",\"isProduct\":true,\"posts\":[{\"name\":\"Edge Network\",\"href\":\"/docs/edge-network\",\"description\":\"Configurable CDN with caching, compute, and routing rules\",\"isProduct\":true,\"posts\":[{\"name\":\"Regions\",\"href\":\"/docs/edge-network/regions\",\"singleFile\":true},{\"name\":\"Edge Cache\",\"href\":\"/docs/edge-network/caching\",\"description\":\"Content caching at the edge for fast responses\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Redirects\",\"href\":\"/docs/redirects\",\"singleFile\":true},{\"name\":\"Rewrites\",\"href\":\"/docs/rewrites\",\"singleFile\":true},{\"name\":\"Headers\",\"href\":\"/docs/edge-network/headers\",\"posts\":[{\"name\":\"Request Headers\",\"href\":\"/docs/edge-network/headers/request-headers\",\"singleFile\":true},{\"name\":\"Response Headers\",\"href\":\"/docs/edge-network/headers/response-headers\",\"singleFile\":true},{\"name\":\"Cache-Control Headers\",\"href\":\"/docs/edge-network/headers/cache-control-headers\",\"singleFile\":true},{\"name\":\"Content Security Policy\",\"href\":\"/docs/edge-network/security-headers\",\"singleFile\":true}]},{\"name\":\"Compression\",\"href\":\"/docs/edge-network/compression\",\"singleFile\":true},{\"name\":\"Directory Listing\",\"href\":\"/docs/directory-listing\",\"singleFile\":true}]},{\"name\":\"Vercel Functions\",\"href\":\"/docs/functions\",\"description\":\"Code on-demand without managing your own infrastructure\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/functions/quickstart\",\"singleFile\":true},{\"name\":\"Streaming\",\"href\":\"/docs/functions/streaming-functions\",\"singleFile\":false},{\"name\":\"Fluid Compute\",\"href\":\"/docs/functions/fluid-compute\",\"singleFile\":true},{\"name\":\"Runtimes\",\"href\":\"/docs/functions/runtimes\",\"posts\":[{\"name\":\"Node.js\",\"href\":\"/docs/functions/runtimes/node-js\",\"posts\":[{\"name\":\"Node.js Versions\",\"href\":\"/docs/functions/runtimes/node-js/node-js-versions\",\"singleFile\":true},{\"name\":\"Advanced Node.js Configuration\",\"href\":\"/docs/functions/runtimes/node-js/advanced-node-configuration\",\"singleFile\":true}]},{\"name\":\"Go\",\"href\":\"/docs/functions/runtimes/go\",\"singleFile\":true},{\"name\":\"Python\",\"href\":\"/docs/functions/runtimes/python\",\"singleFile\":true},{\"name\":\"Ruby\",\"href\":\"/docs/functions/runtimes/ruby\",\"singleFile\":true},{\"name\":\"WebAssembly (Wasm)\",\"href\":\"/docs/functions/wasm\"},{\"name\":\"Edge\",\"href\":\"/docs/functions/runtimes/edge\",\"posts\":[{\"name\":\"Edge Functions\",\"href\":\"/docs/functions/runtimes/edge/edge-functions\"}]},{\"name\":\"Concurrency Scaling\",\"href\":\"/docs/functions/concurrency-scaling\"}]},{\"name\":\"Configuring Functions\",\"href\":\"/docs/functions/configuring-functions\",\"posts\":[{\"name\":\"Runtime\",\"href\":\"/docs/functions/configuring-functions/runtime\",\"singleFile\":true},{\"name\":\"Region\",\"href\":\"/docs/functions/configuring-functions/region\",\"singleFile\":true},{\"name\":\"Duration\",\"href\":\"/docs/functions/configuring-functions/duration\",\"singleFile\":true},{\"name\":\"Memory / CPU\",\"href\":\"/docs/functions/configuring-functions/memory\",\"singleFile\":true},{\"name\":\"Advanced Configuration\",\"href\":\"/docs/functions/configuring-functions/advanced-configuration\"}]},{\"name\":\"API Reference\",\"href\":\"/docs/functions/functions-api-reference\",\"posts\":[{\"name\":\"@vercel/functions\",\"href\":\"/docs/functions/functions-api-reference/vercel-functions-package\",\"singleFile\":true}]},{\"name\":\"Logs\",\"href\":\"/docs/functions/logs\",\"singleFile\":true},{\"name\":\"Limits\",\"href\":\"/docs/functions/limitations\",\"singleFile\":true},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/functions/usage-and-pricing\",\"singleFile\":true}]},{\"name\":\"Edge Middleware\",\"href\":\"/docs/edge-middleware\",\"description\":\"Code that executes before a request is processed on a site\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/edge-middleware/quickstart\",\"singleFile\":true},{\"name\":\"Middleware API\",\"href\":\"/docs/edge-middleware/middleware-api\",\"singleFile\":true},{\"name\":\"Edge Runtime\",\"href\":\"/docs/edge-middleware/edge-runtime\",\"singleFile\":true,\"isDuplicate\":true},{\"name\":\"Limitations\",\"href\":\"/docs/edge-middleware/limitations\",\"singleFile\":true},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/edge-middleware/usage-and-pricing\",\"singleFile\":true}]},{\"name\":\"Open Graph Image Generation\",\"href\":\"/docs/og-image-generation\",\"description\":\"Generate images for social media sharing\",\"posts\":[{\"name\":\"@vercel/og\",\"href\":\"/docs/og-image-generation/og-image-api\",\"singleFile\":true}]},{\"name\":\"Image Optimization\",\"href\":\"/docs/image-optimization\",\"description\":\"Serve high-quality images with minimal impact on page load times\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/image-optimization/quickstart\",\"singleFile\":true},{\"name\":\"Pricing \u0026 Limits\",\"href\":\"/docs/image-optimization/limits-and-pricing\"},{\"name\":\"Managing Costs\",\"href\":\"/docs/image-optimization/managing-image-optimization-costs\",\"singleFile\":true},{\"name\":\"Legacy Pricing\",\"href\":\"/docs/image-optimization/legacy-pricing\"}]},{\"name\":\"Incremental Static Regeneration\",\"href\":\"/docs/incremental-static-regeneration\",\"description\":\"Create or update content without redeploying your site\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/incremental-static-regeneration/quickstart\",\"singleFile\":true},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/incremental-static-regeneration/limits-and-pricing\"}]},{\"name\":\"Data Cache\",\"href\":\"/docs/infrastructure/data-cache\",\"description\":\"Specialized cache for storing responses from fetches\",\"isProduct\":true,\"posts\":[{\"name\":\"Managing Data Cache\",\"href\":\"/docs/infrastructure/data-cache/manage-data-cache\"},{\"name\":\"Usage\",\"href\":\"/docs/infrastructure/data-cache/limits\"}]},{\"name\":\"Cron Jobs\",\"description\":\"Time-based scheduling to automate repetitive tasks\",\"isProduct\":true,\"href\":\"/docs/cron-jobs\",\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/cron-jobs/quickstart\"},{\"name\":\"Manage Cron Jobs\",\"href\":\"/docs/cron-jobs/manage-cron-jobs\"},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/cron-jobs/usage-and-pricing\"}]}]},{\"name\":\"Workflow\",\"href\":\"/docs/workflow-collaboration\",\"key\":\"workflow\",\"isProduct\":true,\"posts\":[{\"name\":\"Vercel Toolbar\",\"href\":\"/docs/workflow-collaboration/vercel-toolbar\",\"description\":\"Manage your Vercel projects from your browser\",\"isProduct\":true,\"posts\":[{\"name\":\"Managing the Toolbar's Visibility\",\"href\":\"/docs/workflow-collaboration/vercel-toolbar/managing-toolbar\",\"singleFile\":true},{\"name\":\"Browser Extension\",\"href\":\"/docs/workflow-collaboration/vercel-toolbar/browser-extension\",\"singleFile\":true},{\"name\":\"Add to Your Environment\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost\",\"singleFile\":true,\"posts\":[{\"name\":\"Add to Localhost\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost\",\"singleFile\":true},{\"name\":\"Add to Production\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost/add-to-production\",\"singleFile\":true}]},{\"name\":\"Layout Shift Tool\",\"href\":\"/docs/workflow-collaboration/layout-shift-tool\",\"description\":\"Measure layout shifts in your application\",\"singleFile\":true},{\"name\":\"Interaction Timing Tool\",\"href\":\"/docs/workflow-collaboration/interaction-timing-tool\",\"description\":\"Measure interaction timing in your application\",\"singleFile\":true},{\"name\":\"Accessibility Audit Tool\",\"href\":\"/docs/vercel-toolbar/accessibility-audit-tool\",\"description\":\"Audit your application for accessibility issues\",\"singleFile\":true}]},{\"name\":\"Feature Flags\",\"href\":\"/docs/feature-flags\",\"description\":\"View and override your application's feature flags\",\"isProduct\":true,\"posts\":[{\"name\":\"Flags SDK\",\"href\":\"/docs/feature-flags/feature-flags-pattern\"},{\"name\":\"Flags Explorer\",\"href\":\"/docs/feature-flags/flags-explorer\",\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/feature-flags/flags-explorer/getting-started\",\"singleFile\":true},{\"name\":\"Reference\",\"href\":\"/docs/feature-flags/flags-explorer/reference\",\"singleFile\":true}]},{\"name\":\"Integrate Flags with Vercel Platform\",\"href\":\"/docs/feature-flags/integrate-vercel-platform\",\"posts\":[{\"name\":\"Runtime Logs\",\"href\":\"/docs/feature-flags/integrate-with-runtime-logs\",\"singleFile\":true},{\"name\":\"Web Analytics\",\"href\":\"/docs/feature-flags/integrate-with-web-analytics\",\"singleFile\":true}]}]},{\"name\":\"Comments\",\"href\":\"/docs/workflow-collaboration/comments\",\"description\":\"Allow collaborators to give direct feedback on preview deployments\",\"isProduct\":true,\"posts\":[{\"name\":\"Enabling Comments\",\"href\":\"/docs/workflow-collaboration/comments/how-comments-work\",\"singleFile\":true},{\"name\":\"Using Comments\",\"href\":\"/docs/workflow-collaboration/comments/using-comments\",\"singleFile\":true},{\"name\":\"Managing Comments\",\"href\":\"/docs/workflow-collaboration/comments/managing-comments\",\"singleFile\":true},{\"name\":\"Integrations\",\"href\":\"/docs/workflow-collaboration/comments/integrations\",\"singleFile\":true}]},{\"name\":\"Edit Mode\",\"href\":\"/docs/workflow-collaboration/edit-mode\",\"description\":\"Edit your content directly on your site\",\"singleFile\":true},{\"name\":\"Draft Mode\",\"href\":\"/docs/workflow-collaboration/draft-mode\",\"description\":\"Preview changes before publishing\",\"singleFile\":true},{\"name\":\"Conformance\",\"href\":\"/docs/workflow-collaboration/conformance\",\"description\":\"Improve collaboration, productivity, and software quality at scale\",\"isProduct\":true,\"singleFile\":true,\"posts\":[{\"name\":\"Getting Started\",\"href\":\"/docs/workflow-collaboration/conformance/getting-started\",\"singleFile\":true},{\"name\":\"CLI\",\"href\":\"/docs/workflow-collaboration/conformance/cli\",\"singleFile\":true},{\"name\":\"Dashboard\",\"href\":\"/docs/conformance/dashboard-overview\",\"singleFile\":true,\"posts\":[{\"name\":\"Catalog reference\",\"href\":\"/docs/conformance/dashboard-overview/catalog\",\"singleFile\":true}]},{\"name\":\"Allowlist\",\"href\":\"/docs/conformance/allowlist\",\"singleFile\":true},{\"name\":\"Customizing Conformance\",\"href\":\"/docs/conformance/customize\",\"singleFile\":true},{\"name\":\"Rules\",\"href\":\"/docs/conformance/rules\",\"hideChildrenSide\":true,\"posts\":[{\"name\":\"BFCACHE_INTEGRITY_NO_UNLOAD_LISTENERS\",\"href\":\"/docs/conformance/rules/BFCACHE_INTEGRITY_NO_UNLOAD_LISTENERS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"BFCACHE_INTEGRITY_REQUIRE_NOOPENER_ATTRIBUTE\",\"href\":\"/docs/conformance/rules/BFCACHE_INTEGRITY_REQUIRE_NOOPENER_ATTRIBUTE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"ESLINT_CONFIGURATION\",\"href\":\"/docs/conformance/rules/ESLINT_CONFIGURATION\",\"singleFile\":true,\"isCode\":true},{\"name\":\"ESLINT_NEXT_RULES_REQUIRED\",\"href\":\"/docs/conformance/rules/ESLINT_NEXT_RULES_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"ESLINT_REACT_RULES_REQUIRED\",\"href\":\"/docs/conformance/rules/ESLINT_REACT_RULES_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"ESLINT_RULES_REQUIRED\",\"href\":\"/docs/conformance/rules/ESLINT_RULES_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_MISSING_MODULARIZE_IMPORTS\",\"href\":\"/docs/conformance/rules/NEXTJS_MISSING_MODULARIZE_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_MISSING_OPTIMIZE_PACKAGE_IMPORTS\",\"href\":\"/docs/conformance/rules/NEXTJS_MISSING_OPTIMIZE_PACKAGE_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_MISSING_NEXT13_TYPESCRIPT_PLUGIN\",\"href\":\"/docs/conformance/rules/NEXTJS_MISSING_NEXT13_TYPESCRIPT_PLUGIN\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_MISSING_REACT_STRICT_MODE\",\"href\":\"/docs/conformance/rules/NEXTJS_MISSING_REACT_STRICT_MODE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_MISSING_SECURITY_HEADERS\",\"href\":\"/docs/conformance/rules/NEXTJS_MISSING_SECURITY_HEADERS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_BEFORE_INTERACTIVE\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_BEFORE_INTERACTIVE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_CLIENT_DEPS_IN_MIDDLEWARE\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_CLIENT_DEPS_IN_MIDDLEWARE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_DYNAMIC_AUTO\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_DYNAMIC_AUTO\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_FETCH_IN_SERVER_PROPS\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_FETCH_IN_SERVER_PROPS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_GET_INITIAL_PROPS\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_GET_INITIAL_PROPS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_SELF_HOSTED_VIDEOS\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_SELF_HOSTED_VIDEOS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_TURBO_CACHE\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_TURBO_CACHE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_SAFE_SVG_IMAGES\",\"href\":\"/docs/conformance/rules/NEXTJS_SAFE_SVG_IMAGES\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_SAFE_URL_IMPORTS\",\"href\":\"/docs/conformance/rules/NEXTJS_SAFE_URL_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_UNNEEDED_GET_SERVER_SIDE_PROPS\",\"href\":\"/docs/conformance/rules/NEXTJS_UNNEEDED_GET_SERVER_SIDE_PROPS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_ASYNC_PAGE\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_ASYNC_PAGE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_ASYNC_LAYOUT\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_ASYNC_LAYOUT\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_USE_NATIVE_FETCH\",\"href\":\"/docs/conformance/rules/NEXTJS_USE_NATIVE_FETCH\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_NO_PRODUCTION_SOURCE_MAPS\",\"href\":\"/docs/conformance/rules/NEXTJS_NO_PRODUCTION_SOURCE_MAPS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_USE_NEXT_FONT\",\"href\":\"/docs/conformance/rules/NEXTJS_USE_NEXT_FONT\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_USE_NEXT_IMAGE\",\"href\":\"/docs/conformance/rules/NEXTJS_USE_NEXT_IMAGE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_USE_NEXT_SCRIPT\",\"href\":\"/docs/conformance/rules/NEXTJS_USE_NEXT_SCRIPT\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_ASSIGN_WINDOW_LOCATION\",\"href\":\"/docs/conformance/rules/NO_ASSIGN_WINDOW_LOCATION\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_CORS_HEADERS\",\"href\":\"/docs/conformance/rules/NO_CORS_HEADERS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_DANGEROUS_HTML\",\"href\":\"/docs/conformance/rules/NO_DANGEROUS_HTML\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_DOCUMENT_WRITE\",\"href\":\"/docs/conformance/rules/NO_DOCUMENT_WRITE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_EVAL\",\"href\":\"/docs/conformance/rules/NO_EVAL\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_EXTERNAL_CSS_AT_IMPORTS\",\"href\":\"/docs/conformance/rules/NO_EXTERNAL_CSS_AT_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_FETCH_FROM_MIDDLEWARE\",\"href\":\"/docs/conformance/rules/NO_FETCH_FROM_MIDDLEWARE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_INSTANCEOF_ERROR\",\"href\":\"/docs/conformance/rules/NO_INSTANCEOF_ERROR\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_MIXED_ASYNC_MODULES\",\"href\":\"/docs/conformance/rules/NO_MIXED_ASYNC_MODULES\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_SERIAL_ASYNC_CALLS\",\"href\":\"/docs/conformance/rules/NO_SERIAL_ASYNC_CALLS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NO_VARIABLE_IMPORT_REFERENCES\",\"href\":\"/docs/conformance/rules/NO_VARIABLE_IMPORT_REFERENCES\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_DESCRIPTION_REQUIRED\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_DESCRIPTION_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_DUPLICATE_DEPENDENCIES\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_DUPLICATE_DEPENDENCIES\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_NAME_REQUIRED\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_NAME_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_PRIVATE_REQUIRED\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_PRIVATE_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_SIDE_EFFECTS_REQUIRED\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_SIDE_EFFECTS_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_JSON_TYPE_REQUIRED\",\"href\":\"/docs/conformance/rules/PACKAGE_JSON_TYPE_REQUIRED\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_MANAGEMENT_NO_CIRCULAR_IMPORTS\",\"href\":\"/docs/conformance/rules/PACKAGE_MANAGEMENT_NO_CIRCULAR_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_MANAGEMENT_NO_UNRESOLVED_IMPORTS\",\"href\":\"/docs/conformance/rules/PACKAGE_MANAGEMENT_NO_UNRESOLVED_IMPORTS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"PACKAGE_MANAGEMENT_REQUIRED_README\",\"href\":\"/docs/conformance/rules/PACKAGE_MANAGEMENT_REQUIRED_README\",\"singleFile\":true,\"isCode\":true},{\"name\":\"REACT_NO_STATIC_IMPORTS_IN_EVENT_HANDLERS\",\"href\":\"/docs/conformance/rules/REACT_NO_STATIC_IMPORTS_IN_EVENT_HANDLERS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"REACT_STABLE_CONTEXT_PROVIDER_VALUE\",\"href\":\"/docs/conformance/rules/REACT_STABLE_CONTEXT_PROVIDER_VALUE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"NEXTJS_REQUIRE_EXPLICIT_DYNAMIC\",\"href\":\"/docs/conformance/rules/NEXTJS_REQUIRE_EXPLICIT_DYNAMIC\",\"singleFile\":true,\"isCode\":true},{\"name\":\"REQUIRE_DOCS_ON_EXPORTED_FUNCTIONS\",\"href\":\"/docs/conformance/rules/REQUIRE_DOCS_ON_EXPORTED_FUNCTIONS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"REQUIRE_ONE_VERSION_POLICY\",\"href\":\"/docs/conformance/rules/REQUIRE_ONE_VERSION_POLICY\",\"singleFile\":true,\"isCode\":true},{\"name\":\"REQUIRE_NODE_VERSION_FILE\",\"href\":\"/docs/conformance/rules/REQUIRE_NODE_VERSION_FILE\",\"singleFile\":true,\"isCode\":true},{\"name\":\"SET_COOKIE_VALIDATION\",\"href\":\"/docs/conformance/rules/SET_COOKIE_VALIDATION\",\"singleFile\":true,\"isCode\":true},{\"name\":\"TESTS_NO_CONDITIONAL_ASSERTIONS\",\"href\":\"/docs/conformance/rules/TESTS_NO_CONDITIONAL_ASSERTIONS\",\"singleFile\":true,\"isCode\":true},{\"name\":\"TESTS_NO_ONLY\",\"href\":\"/docs/conformance/rules/TESTS_NO_ONLY\",\"singleFile\":true,\"isCode\":true},{\"name\":\"TYPESCRIPT_CONFIGURATION\",\"href\":\"/docs/conformance/rules/TYPESCRIPT_CONFIGURATION\",\"singleFile\":true,\"isCode\":true},{\"name\":\"TYPESCRIPT_ONLY\",\"href\":\"/docs/conformance/rules/TYPESCRIPT_ONLY\",\"singleFile\":true,\"isCode\":true},{\"name\":\"WORKSPACE_MISSING_CONFORMANCE_SCRIPT\",\"href\":\"/docs/conformance/rules/WORKSPACE_MISSING_CONFORMANCE_SCRIPT\",\"singleFile\":true,\"isCode\":true},{\"name\":\"WORKSPACE_MISSING_PACKAGE_JSON\",\"href\":\"/docs/conformance/rules/WORKSPACE_MISSING_PACKAGE_JSON\",\"singleFile\":true,\"isCode\":true}]},{\"name\":\"Conformance Custom Rules\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules\",\"posts\":[{\"name\":\"forbidden-code\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules/forbidden-code\",\"singleFile\":true,\"isCode\":true},{\"name\":\"forbidden-dependencies\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules/forbidden-dependencies\",\"singleFile\":true,\"isCode\":true},{\"name\":\"forbidden-imports\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules/forbidden-imports\",\"singleFile\":true,\"isCode\":true},{\"name\":\"forbidden-packages\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules/forbidden-packages\",\"singleFile\":true,\"isCode\":true},{\"name\":\"forbidden-properties\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules/forbidden-properties\",\"singleFile\":true,\"isCode\":true}]},{\"name\":\"Changelog\",\"href\":\"/docs/workflow-collaboration/conformance/changelog\",\"singleFile\":true}]},{\"name\":\"Code Owners\",\"href\":\"/docs/code-owners\",\"singleFile\":true,\"description\":\"Define users or teams that are responsible for your codebase\",\"isProduct\":true,\"posts\":[{\"name\":\"Getting Started\",\"href\":\"/docs/code-owners/getting-started\",\"singleFile\":true},{\"name\":\"CLI\",\"href\":\"/docs/code-owners/cli\",\"singleFile\":true},{\"name\":\"Code Approvers\",\"href\":\"/docs/code-owners/code-approvers\",\"singleFile\":true},{\"name\":\"Changelog\",\"href\":\"/docs/code-owners/changelog\",\"singleFile\":true}]}]},{\"name\":\"Storage\",\"href\":\"/docs/storage\",\"key\":\"storage\",\"isProduct\":true,\"posts\":[{\"name\":\"Storage on Vercel\",\"href\":\"/docs/storage\",\"description\":\"Learn about Vercel’s storage solutions\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Vercel Blob\",\"href\":\"/docs/storage/vercel-blob\",\"description\":\"File serving and uploading via a global network with unique URLs\",\"isProduct\":true,\"posts\":[{\"name\":\"Server Upload Quickstart\",\"href\":\"/docs/storage/vercel-blob/server-upload\",\"singleFile\":true},{\"name\":\"Client Upload Quickstart\",\"href\":\"/docs/storage/vercel-blob/client-upload\",\"singleFile\":true},{\"name\":\"SDK Reference\",\"href\":\"/docs/storage/vercel-blob/using-blob-sdk\",\"singleFile\":true},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/storage/vercel-blob/usage-and-pricing\",\"singleFile\":true}]},{\"name\":\"Edge Config\",\"href\":\"/docs/edge-config\",\"description\":\"Global data store designed for experimentation\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/edge-config/get-started\",\"singleFile\":true},{\"name\":\"Using Edge Config\",\"href\":\"/docs/edge-config/using-edge-config\",\"singleFile\":true},{\"name\":\"Manage with the Vercel API\",\"href\":\"/docs/edge-config/vercel-api\",\"singleFile\":true},{\"name\":\"Manage with the Dashboard\",\"href\":\"/docs/edge-config/edge-config-dashboard\",\"singleFile\":true},{\"name\":\"SDK Reference\",\"href\":\"/docs/edge-config/edge-config-sdk\",\"singleFile\":true},{\"name\":\"Edge Config Integrations\",\"href\":\"/docs/edge-config/integrations\",\"posts\":[{\"name\":\"LaunchDarkly\",\"href\":\"/docs/edge-config/integrations/launchdarkly-edge-config\",\"singleFile\":true},{\"name\":\"Statsig\",\"href\":\"/docs/edge-config/integrations/statsig-edge-config\",\"singleFile\":true},{\"name\":\"Hypertune\",\"href\":\"/docs/edge-config/integrations/hypertune-edge-config\",\"singleFile\":true},{\"name\":\"Split\",\"href\":\"/docs/edge-config/integrations/split-edge-config\",\"singleFile\":true},{\"name\":\"DevCycle\",\"href\":\"/docs/edge-config/integrations/devcycle-edge-config\",\"singleFile\":true}]},{\"name\":\"Limits \u0026 Pricing\",\"href\":\"/docs/edge-config/edge-config-limits\",\"singleFile\":true}]}]},{\"name\":\"Observability\",\"href\":\"/docs/observability\",\"key\":\"observability\",\"isProduct\":true,\"posts\":[{\"name\":\"Observability\",\"href\":\"/docs/observability\",\"description\":\"Monitor and analyze your frontend performance\",\"isProduct\":true,\"posts\":[{\"name\":\"Limits \u0026 Pricing\",\"href\":\"/docs/observability/limits-and-pricing\",\"singleFile\":true},{\"name\":\"Monitoring\",\"href\":\"/docs/observability/monitoring\",\"description\":\"Query and visualize your Vercel usage, traffic, and more\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/observability/monitoring/quickstart\",\"singleFile\":true},{\"name\":\"Reference\",\"href\":\"/docs/observability/monitoring/monitoring-reference\",\"singleFile\":true},{\"name\":\"Limits \u0026 Pricing\",\"href\":\"/docs/observability/monitoring/limits-and-pricing\",\"singleFile\":true}]}]},{\"name\":\"Web Analytics\",\"href\":\"/docs/analytics\",\"description\":\"First-party, privacy-friendly analytics about website visitors\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/analytics/quickstart\"},{\"name\":\"Using Web Analytics\",\"href\":\"/docs/analytics/using-web-analytics\"},{\"name\":\"Filtering\",\"href\":\"/docs/analytics/filtering\"},{\"name\":\"Custom Events\",\"href\":\"/docs/analytics/custom-events\"},{\"name\":\"Redacting Sensitive Data\",\"href\":\"/docs/analytics/redacting-sensitive-data\"},{\"name\":\"Privacy\",\"href\":\"/docs/analytics/privacy-policy\"},{\"name\":\"@vercel/analytics\",\"href\":\"/docs/analytics/package\"},{\"name\":\"Pricing\",\"href\":\"/docs/analytics/limits-and-pricing\"},{\"name\":\"Troubleshooting\",\"href\":\"/docs/analytics/troubleshooting\"}]},{\"name\":\"Speed Insights\",\"href\":\"/docs/speed-insights\",\"description\":\"Explore and improve your website performance\",\"isProduct\":true,\"posts\":[{\"name\":\"Quickstart\",\"href\":\"/docs/speed-insights/quickstart\"},{\"name\":\"Using Speed Insights\",\"href\":\"/docs/speed-insights/using-speed-insights\"},{\"name\":\"Metrics\",\"href\":\"/docs/speed-insights/metrics\"},{\"name\":\"Privacy\",\"href\":\"/docs/speed-insights/privacy-policy\"},{\"name\":\"@vercel/speed-insights\",\"href\":\"/docs/speed-insights/package\",\"posts\":[{\"name\":\"Migrating to the Package\",\"href\":\"/docs/speed-insights/migrating-from-legacy\"}]},{\"name\":\"Limits \u0026 Pricing\",\"href\":\"/docs/speed-insights/limits-and-pricing\"},{\"name\":\"Troubleshooting\",\"href\":\"/docs/speed-insights/troubleshooting\"}]},{\"name\":\"Logs\",\"href\":\"/docs/observability/logs\",\"description\":\"Search, inspect, and share your runtime logs\",\"isProduct\":true,\"posts\":[{\"name\":\"Build Logs\",\"href\":\"/docs/deployments/logs\",\"singleFile\":true},{\"name\":\"Runtime Logs\",\"href\":\"/docs/runtime-logs\",\"description\":\"Search, inspect, and share your runtime logs\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Activity Log\",\"href\":\"/docs/observability/activity-log\",\"description\":\"List of events in your account in chronological order\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Log Drains\",\"href\":\"/docs/log-drains\",\"description\":\"Log collection integration with third-party log services\",\"isProduct\":true,\"posts\":[{\"name\":\"Configure Log Drains\",\"href\":\"/docs/log-drains/configure-log-drains\"},{\"name\":\"Log Drains Reference\",\"href\":\"/docs/log-drains/log-drains-reference\"}]}]},{\"name\":\"OpenTelemetry Collector\",\"href\":\"/docs/otel\",\"description\":\"Send OTEL traces from Functions to APM vendors\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Checks\",\"href\":\"/docs/observability/checks-overview\",\"description\":\"Checks API assesses your deployments quality and reliability\",\"isProduct\":true,\"posts\":[{\"name\":\"Creating Checks\",\"href\":\"/docs/observability/checks-overview/creating-checks\"},{\"name\":\"Checks API\",\"href\":\"/docs/observability/checks-overview/checks-api\"}]}]},{\"name\":\"Integrations\",\"href\":\"/docs/integrations\",\"key\":\"integrations\",\"isProduct\":true,\"posts\":[{\"name\":\"Integration Overview\",\"href\":\"/docs/integrations\",\"isProduct\":true,\"description\":\"Learn how to extend Vercel's capabilities by integrating with your preferred providers\"},{\"name\":\"Extend Vercel\",\"href\":\"/docs/integrations/install-an-integration\",\"description\":\"Install an integration to extend Vercel\",\"isProduct\":true,\"posts\":[{\"name\":\"Add a Native Integration\",\"href\":\"/docs/integrations/install-an-integration/product-integration\",\"singleFile\":true},{\"name\":\"Add a Connectable Account\",\"href\":\"/docs/integrations/install-an-integration/add-a-connectable-account\",\"singleFile\":true},{\"name\":\"Permissions and Access\",\"href\":\"/docs/integrations/install-an-integration/manage-integrations-reference\",\"singleFile\":true}]},{\"name\":\"Integrate with Vercel\",\"href\":\"/docs/integrations/create-integration\",\"description\":\"Create an integration to integrate with Vercel\",\"isProduct\":true,\"posts\":[{\"name\":\"Native Integration Concepts\",\"href\":\"/docs/integrations/create-integration/native-integration\",\"singleFile\":true},{\"name\":\"Create a Native Integration\",\"href\":\"/docs/integrations/marketplace-product\",\"singleFile\":true},{\"name\":\"Deployment Integration Actions\",\"href\":\"/docs/integrations/create-integration/deployment-integration-action\",\"singleFile\":true},{\"name\":\"Submission Requirements\",\"href\":\"/docs/integrations/create-integration/submit-integration\",\"singleFile\":true},{\"name\":\"Approval Checklist\",\"href\":\"/docs/integrations/create-integration/approval-checklist\",\"singleFile\":true},{\"name\":\"Native Integrations Rest API\",\"href\":\"/docs/integrations/marketplace-api\",\"singleFile\":true},{\"name\":\"Native Integration Flows\",\"href\":\"/docs/integrations/marketplace-flows\",\"singleFile\":true}]},{\"name\":\"AI\",\"description\":\"Extend your projects with AI services and models\",\"href\":\"/docs/integrations/ai\",\"isProduct\":true,\"posts\":[{\"name\":\"Adding a Provider\",\"href\":\"/docs/integrations/ai/adding-a-provider\",\"singleFile\":true},{\"name\":\"Adding a Model\",\"href\":\"/docs/integrations/ai/adding-a-model\",\"singleFile\":true},{\"name\":\"OpenAI\",\"href\":\"/docs/integrations/ai/openai\",\"singleFile\":true},{\"name\":\"Pinecone\",\"href\":\"/docs/integrations/ai/pinecone\",\"singleFile\":true},{\"name\":\"Replicate\",\"href\":\"/docs/integrations/ai/replicate\",\"singleFile\":true},{\"name\":\"LMNT\",\"href\":\"/docs/integrations/ai/lmnt\",\"singleFile\":true},{\"name\":\"Modal\",\"href\":\"/docs/integrations/ai/modal\",\"singleFile\":true},{\"name\":\"Elevenlabs\",\"href\":\"/docs/integrations/ai/elevenlabs\",\"singleFile\":true},{\"name\":\"Fal\",\"href\":\"/docs/integrations/ai/fal\",\"singleFile\":true},{\"name\":\"Perplexity\",\"href\":\"/docs/integrations/ai/perplexity\",\"singleFile\":true},{\"name\":\"Together AI\",\"href\":\"/docs/integrations/ai/togetherai\",\"singleFile\":true}]},{\"name\":\"CMS\",\"description\":\"Integrate with Content Management Systems\",\"href\":\"/docs/integrations/cms\",\"isProduct\":true,\"posts\":[{\"name\":\"Agility CMS\",\"href\":\"/docs/integrations/cms/agility-cms\",\"singleFile\":true},{\"name\":\"ButterCMS\",\"href\":\"/docs/integrations/cms/butter-cms\",\"singleFile\":true},{\"name\":\"Contentful\",\"href\":\"/docs/integrations/cms/contentful\",\"singleFile\":true},{\"name\":\"DatoCMS\",\"href\":\"/docs/integrations/cms/dato-cms\",\"singleFile\":true},{\"name\":\"Formspree\",\"href\":\"/docs/integrations/cms/formspree\",\"singleFile\":true},{\"name\":\"Makeswift\",\"href\":\"/docs/integrations/cms/makeswift\",\"singleFile\":true},{\"name\":\"Sanity\",\"href\":\"/docs/integrations/cms/sanity\",\"singleFile\":true},{\"name\":\"Sitecore\",\"href\":\"/docs/integrations/cms/sitecore\",\"singleFile\":true}]},{\"name\":\"Ecommerce\",\"description\":\"Integrate with Ecommerce platforms\",\"href\":\"/docs/integrations/ecommerce\",\"posts\":[{\"name\":\"BigCommerce\",\"href\":\"/docs/integrations/ecommerce/bigcommerce\",\"singleFile\":true},{\"name\":\"Shopify\",\"href\":\"/docs/integrations/ecommerce/shopify\",\"singleFile\":true}]},{\"name\":\"Sign in with Vercel\",\"description\":\"Integrate with Vercel for user authentication\",\"href\":\"/docs/integrations/sign-in-with-vercel\",\"isProduct\":true},{\"name\":\"Kubernetes\",\"href\":\"/docs/integrations/external-platforms/kubernetes\",\"singleFile\":true}]},{\"name\":\"Security\",\"href\":\"/docs/security/overview\",\"key\":\"security\",\"isProduct\":true,\"posts\":[{\"name\":\"Vercel Security\",\"href\":\"/docs/security\",\"description\":\"Vercel provides built-in platform features to ensure that your site is secure\",\"isProduct\":true,\"posts\":[{\"name\":\"Compliance Measures\",\"href\":\"/docs/security/compliance\",\"isProduct\":true,\"description\":\"Compliance to standards such as SOC2, ISO 27001 \u0026 GDPR\",\"posts\":[{\"name\":\"PCI DSS Integration\",\"href\":\"/docs/security/pci-dss\",\"singleFile\":true}]},{\"name\":\"Shared Responsibility\",\"href\":\"/docs/security/shared-responsibility\",\"isProduct\":true,\"description\":\"The shared responsibility model splits security tasks between Vercel and the user\",\"singleFile\":true},{\"name\":\"Encryption\",\"href\":\"/docs/security/encryption\",\"description\":\"Default serving over HTTPS connections\",\"isProduct\":true,\"singleFile\":true}]},{\"name\":\"Firewall\",\"href\":\"/docs/vercel-firewall\",\"description\":\"Protects websites from unauthorized access\",\"isProduct\":true,\"posts\":[{\"name\":\"DDoS Mitigation\",\"href\":\"/docs/security/ddos-mitigation\",\"singleFile\":true,\"description\":\"Protection against DDoS attacks\",\"includeInNav\":true},{\"name\":\"Web Application Firewall\",\"href\":\"/docs/security/vercel-waf\",\"includeInNav\":true,\"description\":\"Customize the your site's protection\",\"posts\":[{\"name\":\"Custom Rules\",\"href\":\"/docs/security/vercel-waf/custom-rules\",\"posts\":[{\"name\":\"Rate Limiting\",\"href\":\"/docs/security/vercel-waf/rate-limiting\",\"singleFile\":true},{\"name\":\"System Bypass Rules\",\"href\":\"/docs/security/vercel-waf/system-bypass-rules\",\"singleFile\":true},{\"name\":\"Rule Configuration Reference\",\"href\":\"/docs/security/vercel-waf/rule-configuration\",\"singleFile\":true},{\"name\":\"Rate Limiting SDK\",\"href\":\"/docs/security/vercel-waf/rate-limiting-sdk\",\"singleFile\":true}]},{\"name\":\"IP Blocking\",\"href\":\"/docs/security/vercel-waf/ip-blocking\",\"singleFile\":true},{\"name\":\"Managed Rulesets\",\"href\":\"/docs/security/vercel-waf/managed-rulesets\",\"singleFile\":true},{\"name\":\"Attack Challenge Mode\",\"href\":\"/docs/attack-challenge-mode\",\"description\":\"Vercel provides control of who has access to your site if under attack\",\"singleFile\":true},{\"name\":\"Examples\",\"href\":\"/docs/security/vercel-waf/examples\",\"singleFile\":true},{\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/security/vercel-waf/usage-and-pricing\",\"singleFile\":true}]},{\"name\":\"Firewall Concepts\",\"href\":\"/docs/security/firewall-concepts\",\"singleFile\":true},{\"name\":\"Observability\",\"href\":\"/docs/vercel-firewall/firewall-observability\",\"singleFile\":true},{\"name\":\"Using the REST API\",\"href\":\"/docs/vercel-firewall/firewall-api\",\"singleFile\":true},{\"name\":\"Reverse Proxy Servers\",\"href\":\"/docs/security/reverse-proxy\",\"singleFile\":true}]},{\"name\":\"Secure Backend Access\",\"href\":\"/docs/security/secure-backend-access\",\"description\":\"Securely access your backend with private connections and OIDC federation\",\"isProduct\":true,\"posts\":[{\"name\":\"Secure Compute\",\"href\":\"/docs/secure-compute\",\"description\":\"Create private connections with your backend cloud\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"OpenID Connect Federation\",\"href\":\"/docs/oidc\",\"description\":\"Securely access your backend with OIDC federation\",\"isProduct\":true,\"badge\":\"New\",\"posts\":[{\"name\":\"Connect to Amazon Web Services (AWS)\",\"href\":\"/docs/oidc/aws\",\"singleFile\":true},{\"name\":\"Connect to Google Cloud Platform (GCP)\",\"href\":\"/docs/oidc/gcp\",\"singleFile\":true},{\"name\":\"Connect to Microsoft Azure\",\"href\":\"/docs/oidc/azure\",\"singleFile\":true},{\"name\":\"Connect to your own API\",\"href\":\"/docs/oidc/api\",\"singleFile\":true},{\"name\":\"Reference\",\"href\":\"/docs/oidc/reference\",\"singleFile\":true}]}]},{\"name\":\"Secure Team Access\",\"href\":\"/docs/security/secure-team-access\",\"description\":\"Tools to improve security related to your team on Vercel\",\"posts\":[{\"name\":\"SAML SSO\",\"href\":\"/docs/saml\",\"description\":\"Manage team members with third-party identity providers\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Directory Sync\",\"href\":\"/docs/security/directory-sync\",\"description\":\"Manage your teams with third-party identity providers\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Audit Logs\",\"href\":\"/docs/observability/audit-log\",\"description\":\"Track and analyze your team members activities\",\"isProduct\":true,\"singleFile\":true}]},{\"name\":\"Secure Deployments\",\"href\":\"/docs/security/secure-deployments\",\"description\":\"Tools to improve security related to your deployments on Vercel\",\"posts\":[{\"name\":\"Access Control\",\"href\":\"/docs/security/access-control\"},{\"name\":\"Deployment Protection\",\"href\":\"/docs/security/deployment-protection\",\"description\":\"Secure your deployments, and manage their access\",\"isProduct\":true,\"posts\":[{\"name\":\"Methods to Protect Deployments\",\"href\":\"/docs/security/deployment-protection/methods-to-protect-deployments\",\"posts\":[{\"name\":\"Vercel Authentication\",\"href\":\"/docs/security/deployment-protection/methods-to-protect-deployments/vercel-authentication\",\"singleFile\":true},{\"name\":\"Password Protection\",\"href\":\"/docs/security/deployment-protection/methods-to-protect-deployments/password-protection\",\"singleFile\":true},{\"name\":\"Trusted IPs\",\"href\":\"/docs/security/deployment-protection/methods-to-protect-deployments/trusted-ips\",\"singleFile\":true}]},{\"name\":\"Methods to Bypass Deployment Protection\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection\",\"posts\":[{\"name\":\"Sharable Links\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection/sharable-links\",\"singleFile\":true},{\"name\":\"Protection Bypass for Automation\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation\",\"singleFile\":true},{\"name\":\"Deployment Protection Exceptions\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions\",\"singleFile\":true},{\"name\":\"OPTIONS Allowlist\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist\",\"singleFile\":true}]}]},{\"name\":\"Deployment Retention\",\"href\":\"/docs/security/deployment-retention\",\"description\":\"Manage your deployments and their lifecycle\",\"isProduct\":true,\"singleFile\":true},{\"name\":\"Protected Git Scopes\",\"href\":\"/docs/security/protected-git-scopes\",\"description\":\"Limit other Vercel teams from deploying from your Git repositories\",\"isProduct\":true,\"singleFile\":true}]}]},{\"name\":\"CLI \u0026 API\",\"href\":\"cli/\",\"key\":\"cliapi\",\"useInPath\":\"/docs/file-system-api\",\"posts\":[{\"name\":\"Vercel CLI\",\"href\":\"/docs/cli/\",\"description\":\"Manage your Projects from the command line\",\"isProduct\":true,\"posts\":[{\"name\":\"Deploying from CLI\",\"href\":\"/docs/cli/deploying-from-cli\"},{\"name\":\"Project Linking\",\"href\":\"/docs/cli/project-linking\"},{\"name\":\"Telemetry\",\"href\":\"/docs/cli/about-telemetry\"},{\"name\":\"Global Options\",\"href\":\"/docs/cli/global-options\"},{\"name\":\"alias\",\"href\":\"/docs/cli/alias\",\"isCode\":true},{\"name\":\"bisect\",\"href\":\"/docs/cli/bisect\",\"isCode\":true},{\"name\":\"build\",\"href\":\"/docs/cli/build\",\"isCode\":true},{\"name\":\"certs\",\"href\":\"/docs/cli/certs\",\"isCode\":true},{\"name\":\"deploy\",\"href\":\"/docs/cli/deploy\",\"isCode\":true},{\"name\":\"dev\",\"href\":\"/docs/cli/dev\",\"isCode\":true},{\"name\":\"dns\",\"href\":\"/docs/cli/dns\",\"isCode\":true},{\"name\":\"domains\",\"href\":\"/docs/cli/domains\",\"isCode\":true},{\"name\":\"env\",\"href\":\"/docs/cli/env\",\"isCode\":true},{\"name\":\"git\",\"href\":\"/docs/cli/git\",\"isCode\":true},{\"name\":\"help\",\"href\":\"/docs/cli/help\",\"isCode\":true},{\"name\":\"init\",\"href\":\"/docs/cli/init\",\"isCode\":true},{\"name\":\"inspect\",\"href\":\"/docs/cli/inspect\",\"isCode\":true},{\"name\":\"install\",\"href\":\"/docs/cli/install\",\"isCode\":true},{\"name\":\"integration\",\"href\":\"/docs/cli/integration\",\"isCode\":true},{\"name\":\"integration-resource\",\"href\":\"/docs/cli/integration-resource\",\"isCode\":true},{\"name\":\"link\",\"href\":\"/docs/cli/link\",\"isCode\":true},{\"name\":\"list\",\"href\":\"/docs/cli/list\",\"isCode\":true},{\"name\":\"login\",\"href\":\"/docs/cli/login\",\"isCode\":true},{\"name\":\"logout\",\"href\":\"/docs/cli/logout\",\"isCode\":true},{\"name\":\"logs\",\"href\":\"/docs/cli/logs\",\"isCode\":true},{\"name\":\"project\",\"href\":\"/docs/cli/project\",\"isCode\":true},{\"name\":\"promote\",\"href\":\"/docs/cli/promote\",\"isCode\":true},{\"name\":\"pull\",\"href\":\"/docs/cli/pull\",\"isCode\":true},{\"name\":\"redeploy\",\"href\":\"/docs/cli/redeploy\",\"isCode\":true},{\"name\":\"remove\",\"href\":\"/docs/cli/remove\",\"isCode\":true},{\"name\":\"rollback\",\"href\":\"/docs/cli/rollback\",\"isCode\":true},{\"name\":\"switch\",\"href\":\"/docs/cli/switch\",\"isCode\":true},{\"name\":\"teams\",\"href\":\"/docs/cli/teams\",\"isCode\":true},{\"name\":\"telemetry\",\"href\":\"/docs/cli/telemetry\",\"isCode\":true},{\"name\":\"whoami\",\"href\":\"/docs/cli/whoami\",\"isCode\":true}]},{\"name\":\"Vercel REST API\",\"href\":\"/docs/rest-api/\",\"description\":\"Use HTTP requests to interact with your account\",\"isProduct\":true,\"posts\":[{\"name\":\"Endpoints\",\"href\":\"/docs/rest-api/endpoints\"},{\"name\":\"Errors\",\"href\":\"/docs/rest-api/errors\"},{\"name\":\"Interfaces\",\"href\":\"/docs/rest-api/interfaces\"},{\"name\":\"Building Integrations\",\"href\":\"/docs/rest-api/vercel-api-integrations\"}]},{\"name\":\"Vercel SDK\",\"href\":\"/docs/rest-api/sdk\",\"description\":\"Use the Typescript SDK to interact with Vercel.\"},{\"name\":\"Build Output API\",\"href\":\"/docs/build-output-api/v3\",\"description\":\"File-system-based specification of a Deployment\",\"isProduct\":true,\"posts\":[{\"name\":\"Configuration\",\"href\":\"/docs/build-output-api/v3/configuration\",\"singleFile\":true},{\"name\":\"Vercel Primitives\",\"href\":\"/docs/build-output-api/v3/primitives\",\"singleFile\":true},{\"name\":\"Features\",\"href\":\"/docs/build-output-api/v3/features\",\"singleFile\":true}]}]},{\"name\":\"All Products\",\"href\":\"/docs/all-products\",\"key\":\"all-products\"}],\"home\":true},{\"name\":\"Guides\",\"href\":\"/guides\",\"singleFile\":true},{\"name\":\"Help\",\"href\":\"/help\",\"singleFile\":true}],\"documentationObject\":{\"platform\":{\"name\":\"Platform\",\"href\":\"/docs/platform\",\"key\":\"platform\",\"hasHighlight\":true,\"posts\":[{\"name\":\"Get Started\",\"href\":\"/docs/getting-started-with-vercel\",\"description\":\"Build for the web and learn to use our platform\",\"highlight\":true,\"open\":false,\"posts\":[{\"name\":\"Step 1 – Projects \u0026 Deployments\",\"href\":\"/docs/getting-started-with-vercel/projects-deployments\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:0:posts:1\"]},{\"name\":\"Step 2 – Add a Domain\",\"href\":\"/docs/getting-started-with-vercel/domains\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:1:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:0:posts:3\"]},{\"name\":\"Vercel Fundamentals\",\"href\":\"/docs/fundamentals\",\"description\":\"Learn about the core concepts of Vercel\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:1:posts:1\"]},{\"name\":\"Incremental Migration\",\"href\":\"/docs/incremental-migration\",\"description\":\"Migrate your site to Vercel with minimum risk\",\"isProduct\":false,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:2:posts:1\"]},{\"name\":\"Frameworks\",\"href\":\"/docs/frameworks\",\"description\":\"Deploy with the framework of your choice on our platform\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:3:posts:9\"]},{\"name\":\"Projects\",\"href\":\"/docs/projects/overview\",\"description\":\"A Project groups deployments and custom domains\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:1\",{\"name\":\"Monorepos\",\"href\":\"/docs/monorepos\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:2:posts:3\"]},{\"name\":\"Environment Variables\",\"href\":\"/docs/environment-variables\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:3:posts:5\"]},{\"name\":\"Project Settings\",\"href\":\"/docs/project-configuration/project-settings\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:4:posts:2\",{\"name\":\"vercel.json\",\"href\":\"/docs/project-configuration\",\"description\":\"Configure your project with vercel.json\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:4:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:4:posts:3:posts:1\"]}]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:4:posts:5\"]},{\"name\":\"Builds\",\"href\":\"/docs/deployments/builds\",\"description\":\"Learn how your projects are built and configured\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:1\",{\"name\":\"Managing Builds\",\"href\":\"/docs/deployments/managing-builds\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:2:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:3\",{\"name\":\"Build Image Overview\",\"href\":\"/docs/deployments/build-image\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:4:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:5:posts:5\"]},{\"name\":\"Deployments\",\"href\":\"/docs/deployments\",\"description\":\"How your sites are generated and configured\",\"posts\":[{\"name\":\"Deploy to Vercel\",\"href\":\"/docs/deployments/deployment-methods\",\"posts\":[{\"name\":\"Git Integrations\",\"href\":\"/docs/git\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:0:posts:3\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:2\",{\"name\":\"Deploy Button\",\"href\":\"/docs/deploy-button\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:0:posts:3:posts:5\"]}]},{\"name\":\"Deployment Environments\",\"href\":\"/docs/deployments/environments\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:1:posts:0\",{\"name\":\"Pre-production\",\"href\":\"/docs/deployments/pre-production\",\"posts\":[{\"name\":\"Preview\",\"href\":\"/docs/deployments/environments#preview-environment-pre-production\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:1:posts:1:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:1:posts:1:posts:0:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:1:posts:1:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:1:posts:2\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:2\",{\"name\":\"Manage Deployments\",\"href\":\"/docs/deployments/managing-deployments\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:3:posts:3\"]},{\"name\":\"Webhooks\",\"href\":\"/docs/webhooks\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:4:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:6:posts:6\"]},{\"name\":\"Domains\",\"href\":\"/docs/domains\",\"description\":\"Adding, deploying, redirecting and transferring domains\",\"isProduct\":true,\"posts\":[{\"name\":\"Working with Domains\",\"href\":\"/docs/domains/working-with-domains\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:0:posts:7\"]},{\"name\":\"Working with DNS\",\"href\":\"/docs/domains/working-with-dns\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:1:posts:0\"]},{\"name\":\"Working with Nameservers\",\"href\":\"/docs/domains/working-with-nameservers\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:2:posts:0\"]},{\"name\":\"Working with SSL\",\"href\":\"/docs/domains/working-with-ssl\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:3:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:7:posts:5\"]},{\"name\":\"Going Live Checklist\",\"href\":\"/docs/production-checklist\",\"description\":\"Pre-launch checklist for your project\",\"isProduct\":false,\"singleFile\":true,\"posts\":[]},{\"name\":\"Pricing\",\"href\":\"/docs/pricing\",\"description\":\"Pricing, plans, and spend management\",\"posts\":[{\"name\":\"Regional Pricing\",\"href\":\"/docs/pricing/regional-pricing\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:10\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:11\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:12\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:13\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:14\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:15\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:16\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:0:posts:17\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:2\",{\"name\":\"Billing \u0026 Invoices\",\"href\":\"/docs/pricing/understanding-my-invoice\",\"singleFile\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:3:posts:1\"]},{\"name\":\"Manage \u0026 Optimize Usage\",\"href\":\"/docs/pricing/manage-and-optimize-usage\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:10\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:4:posts:11\"]},{\"name\":\"Plans\",\"href\":\"/docs/plans\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:5:posts:0\",{\"name\":\"Pro\",\"href\":\"/docs/plans/pro\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:5:posts:1:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:9:posts:5:posts:2\"]}]},{\"name\":\"Resources\",\"href\":\"/docs/resources\",\"description\":\"Learn about account management, error handling, and more\",\"open\":false,\"posts\":[{\"name\":\"Dashboard\",\"href\":\"/docs/dashboard-features/\",\"description\":\"View and manage all aspects of the Vercel platform\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:0:posts:3\"]},{\"name\":\"Account Management\",\"href\":\"/docs/accounts\",\"description\":\"Create a Vercel identity and collaborate with teams\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:2\",{\"name\":\"Team Roles \u0026 Permissions\",\"href\":\"/docs/accounts/team-members-and-roles\",\"posts\":[{\"name\":\"Access Roles\",\"href\":\"/docs/rbac/access-roles\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:3:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:3:posts:0:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:1:posts:3:posts:2\"]}]},{\"name\":\"Limits\",\"href\":\"/docs/limits\",\"description\":\"List of limits and limitations applied on Vercel\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:2:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:3\",{\"name\":\"Error Codes\",\"href\":\"/docs/errors\",\"description\":\"List of possible errors when interacting with Vercel\",\"isProduct\":false,\"hideChildrenSide\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:10\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:11\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:12\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:13\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:14\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:15\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:16\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:17\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:18\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:19\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:20\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:21\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:22\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:23\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:24\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:25\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:26\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:27\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:28\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:29\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:30\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:31\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:32\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:33\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:34\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:35\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:36\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:37\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:38\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:39\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:40\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:41\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:42\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:43\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:44\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:45\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:46\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:47\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:48\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:49\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:50\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:51\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:52\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:53\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:54\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:55\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:56\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:57\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:58\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:59\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:60\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:61\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:62\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:4:posts:63\"]},{\"name\":\"Release Phases\",\"href\":\"/docs/release-phases\",\"description\":\"Phases of the Vercel Product release cycle\",\"isProduct\":true,\"singleFile\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:5:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:0:posts:10:posts:7\"]}]},\"infrastructure\":{\"name\":\"Infrastructure\",\"href\":\"/docs/infrastructure/\",\"key\":\"infrastructure\",\"isProduct\":true,\"posts\":[{\"name\":\"Edge Network\",\"href\":\"/docs/edge-network\",\"description\":\"Configurable CDN with caching, compute, and routing rules\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:3\",{\"name\":\"Headers\",\"href\":\"/docs/edge-network/headers\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:4:posts:3\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:0:posts:6\"]},{\"name\":\"Vercel Functions\",\"href\":\"/docs/functions\",\"description\":\"Code on-demand without managing your own infrastructure\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:2\",{\"name\":\"Runtimes\",\"href\":\"/docs/functions/runtimes\",\"posts\":[{\"name\":\"Node.js\",\"href\":\"/docs/functions/runtimes/node-js\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:0:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:4\",{\"name\":\"Edge\",\"href\":\"/docs/functions/runtimes/edge\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:5:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:3:posts:6\"]},{\"name\":\"Configuring Functions\",\"href\":\"/docs/functions/configuring-functions\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:4:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:4:posts:4\"]},{\"name\":\"API Reference\",\"href\":\"/docs/functions/functions-api-reference\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:5:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:1:posts:8\"]},{\"name\":\"Edge Middleware\",\"href\":\"/docs/edge-middleware\",\"description\":\"Code that executes before a request is processed on a site\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:2:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:2:posts:4\"]},{\"name\":\"Open Graph Image Generation\",\"href\":\"/docs/og-image-generation\",\"description\":\"Generate images for social media sharing\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:3:posts:0\"]},{\"name\":\"Image Optimization\",\"href\":\"/docs/image-optimization\",\"description\":\"Serve high-quality images with minimal impact on page load times\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:4:posts:3\"]},{\"name\":\"Incremental Static Regeneration\",\"href\":\"/docs/incremental-static-regeneration\",\"description\":\"Create or update content without redeploying your site\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:5:posts:1\"]},{\"name\":\"Data Cache\",\"href\":\"/docs/infrastructure/data-cache\",\"description\":\"Specialized cache for storing responses from fetches\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:6:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:6:posts:1\"]},{\"name\":\"Cron Jobs\",\"description\":\"Time-based scheduling to automate repetitive tasks\",\"isProduct\":true,\"href\":\"/docs/cron-jobs\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:7:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:7:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:1:posts:7:posts:2\"]}]},\"workflow\":{\"name\":\"Workflow\",\"href\":\"/docs/workflow-collaboration\",\"key\":\"workflow\",\"isProduct\":true,\"posts\":[{\"name\":\"Vercel Toolbar\",\"href\":\"/docs/workflow-collaboration/vercel-toolbar\",\"description\":\"Manage your Vercel projects from your browser\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:1\",{\"name\":\"Add to Your Environment\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost\",\"singleFile\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:2:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:0:posts:5\"]},{\"name\":\"Feature Flags\",\"href\":\"/docs/feature-flags\",\"description\":\"View and override your application's feature flags\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:1:posts:0\",{\"name\":\"Flags Explorer\",\"href\":\"/docs/feature-flags/flags-explorer\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:1:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:1:posts:1:posts:1\"]},{\"name\":\"Integrate Flags with Vercel Platform\",\"href\":\"/docs/feature-flags/integrate-vercel-platform\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:1:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:1:posts:2:posts:1\"]}]},{\"name\":\"Comments\",\"href\":\"/docs/workflow-collaboration/comments\",\"description\":\"Allow collaborators to give direct feedback on preview deployments\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:2:posts:3\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:4\",{\"name\":\"Conformance\",\"href\":\"/docs/workflow-collaboration/conformance\",\"description\":\"Improve collaboration, productivity, and software quality at scale\",\"isProduct\":true,\"singleFile\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:1\",{\"name\":\"Dashboard\",\"href\":\"/docs/conformance/dashboard-overview\",\"singleFile\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:2:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:4\",{\"name\":\"Rules\",\"href\":\"/docs/conformance/rules\",\"hideChildrenSide\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:10\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:11\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:12\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:13\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:14\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:15\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:16\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:17\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:18\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:19\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:20\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:21\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:22\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:23\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:24\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:25\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:26\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:27\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:28\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:29\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:30\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:31\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:32\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:33\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:34\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:35\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:36\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:37\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:38\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:39\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:40\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:41\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:42\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:43\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:44\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:45\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:46\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:47\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:48\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:49\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:50\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:51\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:52\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:53\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:54\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:55\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:56\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:57\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:58\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:59\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:5:posts:60\"]},{\"name\":\"Conformance Custom Rules\",\"href\":\"/docs/workflow-collaboration/conformance/custom-rules\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:6:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:6:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:6:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:6:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:6:posts:4\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:5:posts:7\"]},{\"name\":\"Code Owners\",\"href\":\"/docs/code-owners\",\"singleFile\":true,\"description\":\"Define users or teams that are responsible for your codebase\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:6:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:6:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:6:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:2:posts:6:posts:3\"]}]},\"storage\":{\"name\":\"Storage\",\"href\":\"/docs/storage\",\"key\":\"storage\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:0\",{\"name\":\"Vercel Blob\",\"href\":\"/docs/storage/vercel-blob\",\"description\":\"File serving and uploading via a global network with unique URLs\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:1:posts:3\"]},{\"name\":\"Edge Config\",\"href\":\"/docs/edge-config\",\"description\":\"Global data store designed for experimentation\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:4\",{\"name\":\"Edge Config Integrations\",\"href\":\"/docs/edge-config/integrations\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:5:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:5:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:5:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:5:posts:4\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:3:posts:2:posts:6\"]}]},\"observability\":{\"name\":\"Observability\",\"href\":\"/docs/observability\",\"key\":\"observability\",\"isProduct\":true,\"posts\":[{\"name\":\"Observability\",\"href\":\"/docs/observability\",\"description\":\"Monitor and analyze your frontend performance\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:0:posts:0\",{\"name\":\"Monitoring\",\"href\":\"/docs/observability/monitoring\",\"description\":\"Query and visualize your Vercel usage, traffic, and more\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:0:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:0:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:0:posts:1:posts:2\"]}]},{\"name\":\"Web Analytics\",\"href\":\"/docs/analytics\",\"description\":\"First-party, privacy-friendly analytics about website visitors\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:1:posts:8\"]},{\"name\":\"Speed Insights\",\"href\":\"/docs/speed-insights\",\"description\":\"Explore and improve your website performance\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:3\",{\"name\":\"@vercel/speed-insights\",\"href\":\"/docs/speed-insights/package\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:4:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:2:posts:6\"]},{\"name\":\"Logs\",\"href\":\"/docs/observability/logs\",\"description\":\"Search, inspect, and share your runtime logs\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:3:posts:2\",{\"name\":\"Log Drains\",\"href\":\"/docs/log-drains\",\"description\":\"Log collection integration with third-party log services\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:3:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:3:posts:3:posts:1\"]}]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:4\",{\"name\":\"Checks\",\"href\":\"/docs/observability/checks-overview\",\"description\":\"Checks API assesses your deployments quality and reliability\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:4:posts:5:posts:1\"]}]},\"integrations\":{\"name\":\"Integrations\",\"href\":\"/docs/integrations\",\"key\":\"integrations\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:0\",{\"name\":\"Extend Vercel\",\"href\":\"/docs/integrations/install-an-integration\",\"description\":\"Install an integration to extend Vercel\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:1:posts:2\"]},{\"name\":\"Integrate with Vercel\",\"href\":\"/docs/integrations/create-integration\",\"description\":\"Create an integration to integrate with Vercel\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:2:posts:6\"]},{\"name\":\"AI\",\"description\":\"Extend your projects with AI services and models\",\"href\":\"/docs/integrations/ai\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:3:posts:10\"]},{\"name\":\"CMS\",\"description\":\"Integrate with Content Management Systems\",\"href\":\"/docs/integrations/cms\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:4:posts:7\"]},{\"name\":\"Ecommerce\",\"description\":\"Integrate with Ecommerce platforms\",\"href\":\"/docs/integrations/ecommerce\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:5:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:5:posts:1\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:5:posts:7\"]},\"security\":{\"name\":\"Security\",\"href\":\"/docs/security/overview\",\"key\":\"security\",\"isProduct\":true,\"posts\":[{\"name\":\"Vercel Security\",\"href\":\"/docs/security\",\"description\":\"Vercel provides built-in platform features to ensure that your site is secure\",\"isProduct\":true,\"posts\":[{\"name\":\"Compliance Measures\",\"href\":\"/docs/security/compliance\",\"isProduct\":true,\"description\":\"Compliance to standards such as SOC2, ISO 27001 \u0026 GDPR\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:0:posts:0:posts:0\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:0:posts:2\"]},{\"name\":\"Firewall\",\"href\":\"/docs/vercel-firewall\",\"description\":\"Protects websites from unauthorized access\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:0\",{\"name\":\"Web Application Firewall\",\"href\":\"/docs/security/vercel-waf\",\"includeInNav\":true,\"description\":\"Customize the your site's protection\",\"posts\":[{\"name\":\"Custom Rules\",\"href\":\"/docs/security/vercel-waf/custom-rules\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:0:posts:3\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:1:posts:5\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:1:posts:5\"]},{\"name\":\"Secure Backend Access\",\"href\":\"/docs/security/secure-backend-access\",\"description\":\"Securely access your backend with private connections and OIDC federation\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:0\",{\"name\":\"OpenID Connect Federation\",\"href\":\"/docs/oidc\",\"description\":\"Securely access your backend with OIDC federation\",\"isProduct\":true,\"badge\":\"New\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:1:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:2:posts:1:posts:4\"]}]},{\"name\":\"Secure Team Access\",\"href\":\"/docs/security/secure-team-access\",\"description\":\"Tools to improve security related to your team on Vercel\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:3:posts:2\"]},{\"name\":\"Secure Deployments\",\"href\":\"/docs/security/secure-deployments\",\"description\":\"Tools to improve security related to your deployments on Vercel\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:0\",{\"name\":\"Deployment Protection\",\"href\":\"/docs/security/deployment-protection\",\"description\":\"Secure your deployments, and manage their access\",\"isProduct\":true,\"posts\":[{\"name\":\"Methods to Protect Deployments\",\"href\":\"/docs/security/deployment-protection/methods-to-protect-deployments\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:0:posts:2\"]},{\"name\":\"Methods to Bypass Deployment Protection\",\"href\":\"/docs/security/deployment-protection/methods-to-bypass-deployment-protection\",\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:1:posts:1:posts:3\"]}]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:6:posts:4:posts:3\"]}]},\"cliapi\":{\"name\":\"CLI \u0026 API\",\"href\":\"cli/\",\"key\":\"cliapi\",\"useInPath\":\"/docs/file-system-api\",\"posts\":[{\"name\":\"Vercel CLI\",\"href\":\"/docs/cli/\",\"description\":\"Manage your Projects from the command line\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:3\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:4\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:5\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:6\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:7\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:8\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:9\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:10\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:11\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:12\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:13\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:14\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:15\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:16\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:17\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:18\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:19\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:20\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:21\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:22\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:23\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:24\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:25\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:26\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:27\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:28\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:29\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:30\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:31\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:32\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:33\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:0:posts:34\"]},{\"name\":\"Vercel REST API\",\"href\":\"/docs/rest-api/\",\"description\":\"Use HTTP requests to interact with your account\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:1:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:1:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:1:posts:2\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:1:posts:3\"]},\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:2\",{\"name\":\"Build Output API\",\"href\":\"/docs/build-output-api/v3\",\"description\":\"File-system-based specification of a Deployment\",\"isProduct\":true,\"posts\":[\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:3:posts:0\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:3:posts:1\",\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:7:posts:3:posts:2\"]}]},\"all-products\":\"$4:props:children:0:props:children:props:value:primaryNavigation:0:posts:8\"}},\"children\":[[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$L1a\",null,{\"children\":[[\"$\",\"$L1b\",null,{}],[\"$\",\"$L1c\",null,{\"storageKey\":\"zeit-theme\",\"children\":[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$L1e\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"style\":{\"height\":\"100vh\"},\"children\":[\"$\",\"$L1f\",null,{\"href\":\"/docs\"}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}],[\"$\",\"$L20\",null,{\"children\":[\"$\",\"$L21\",null,{}]}],[[[\"$\",\"$L22\",\"script-sift\",{\"dangerouslySetInnerHTML\":{\"__html\":\"$23\"},\"id\":\"script-sift\"}]],[\"$\",\"$L24\",null,{}],[\"$\",\"$L25\",null,{}],[\"$\",\"$L26\",null,{}],[\"$\",\"$L27\",null,{}]],[\"$\",\"$L28\",null,{}]]}]}],[\"$\",\"$29\",null,{\"fallback\":null,\"children\":\"$L2a\"}]]}]}],[\"$\",\"$L2b\",null,{}],\"$L2c\"]}]\n"])</script><script>self.__next_f.push([1,"5:[[\"$\",\"$L2d\",null,{}],[\"$\",\"$L2e\",null,{}],[\"$\",\"$L2f\",null,{\"navigation\":{\"children\":[{\"id\":\"cc21bb7e\",\"trail\":[],\"name\":\"Account Management\",\"href\":\"/docs/accounts\",\"category\":\"Access\",\"children\":\"$undefined\"},{\"id\":\"6cf43df3\",\"trail\":[],\"children\":[{\"id\":\"0d60ef2b\",\"trail\":[\"6cf43df3\"],\"name\":\"Navigating the Dashboard\",\"href\":\"/docs/dashboard-features/overview\",\"children\":\"$undefined\"},{\"id\":\"958fbd09\",\"trail\":[\"6cf43df3\"],\"name\":\"Support Center\",\"href\":\"/docs/dashboard-features/support-center\",\"children\":\"$undefined\"},{\"id\":\"e4354b34\",\"trail\":[\"6cf43df3\"],\"name\":\"Using the Command Menu \",\"href\":\"/docs/dashboard-features/command-menu\",\"children\":\"$undefined\"}],\"name\":\"Dashboard\",\"href\":\"/docs/dashboard-features\",\"category\":\"Platform\"},{\"id\":\"6bd899f0\",\"trail\":[],\"name\":\"v0\",\"href\":\"/docs/v0\",\"category\":\"AI\",\"children\":\"$undefined\"},{\"id\":\"db2e11a7\",\"trail\":[],\"name\":\"AI SDK\",\"href\":\"/docs/ai-sdk\",\"category\":\"AI\",\"children\":\"$undefined\"},{\"id\":\"380cffca\",\"trail\":[],\"name\":\"Notifications\",\"href\":\"/docs/notifications\",\"category\":\"Platform\",\"children\":\"$undefined\"},{\"id\":\"378d214c\",\"trail\":[],\"children\":[{\"id\":\"8d66b490\",\"trail\":[\"378d214c\"],\"name\":\"Adding a Provider\",\"href\":\"/docs/ai/adding-a-provider\",\"children\":\"$undefined\"},{\"id\":\"f2c9c4c3\",\"trail\":[\"378d214c\"],\"name\":\"Adding a Model\",\"href\":\"/docs/ai/adding-a-model\",\"children\":\"$undefined\"},{\"id\":\"e3dc59b3\",\"trail\":[\"378d214c\"],\"name\":\"xAI\",\"href\":\"/docs/ai/xai\",\"children\":\"$undefined\"},{\"id\":\"0f8d8c4a\",\"trail\":[\"378d214c\"],\"name\":\"Groq\",\"href\":\"/docs/ai/groq\",\"children\":\"$undefined\"},{\"id\":\"27ddbecf\",\"trail\":[\"378d214c\"],\"name\":\"fal\",\"href\":\"/docs/ai/fal\",\"children\":\"$undefined\"},{\"id\":\"45ebd46c\",\"trail\":[\"378d214c\"],\"name\":\"Deep Infra\",\"href\":\"/docs/ai/deepinfra\",\"children\":\"$undefined\"},{\"id\":\"ca1f1b6e\",\"trail\":[\"378d214c\"],\"name\":\"ElevenLabs\",\"href\":\"/docs/ai/elevenlabs\",\"children\":\"$undefined\"},{\"id\":\"b2cd5474\",\"trail\":[\"378d214c\"],\"name\":\"LMNT\",\"href\":\"/docs/ai/lmnt\",\"children\":\"$undefined\"},{\"id\":\"ee2b39f7\",\"trail\":[\"378d214c\"],\"name\":\"OpenAI\",\"href\":\"/docs/ai/openai\",\"children\":\"$undefined\"},{\"id\":\"f3a69e76\",\"trail\":[\"378d214c\"],\"name\":\"Perplexity\",\"href\":\"/docs/ai/perplexity\",\"children\":\"$undefined\"},{\"id\":\"2b6d6b25\",\"trail\":[\"378d214c\"],\"name\":\"Pinecone\",\"href\":\"/docs/ai/pinecone\",\"children\":\"$undefined\"},{\"id\":\"e30cd6e9\",\"trail\":[\"378d214c\"],\"name\":\"Replicate\",\"href\":\"/docs/ai/replicate\",\"children\":\"$undefined\"},{\"id\":\"d404f863\",\"trail\":[\"378d214c\"],\"name\":\"Together AI\",\"href\":\"/docs/ai/togetherai\",\"children\":\"$undefined\"}],\"name\":\"Integrations\",\"href\":\"/docs/ai\",\"category\":\"AI\"},{\"id\":\"53bc074d\",\"trail\":[],\"children\":[{\"id\":\"b8938dac\",\"trail\":[\"53bc074d\"],\"name\":\"Managing projects\",\"href\":\"/docs/projects/managing-projects\",\"children\":\"$undefined\"},{\"id\":\"7e720e71\",\"trail\":[\"53bc074d\"],\"name\":\"Project Dashboard\",\"href\":\"/docs/projects/project-dashboard\",\"children\":\"$undefined\"},{\"id\":\"6986d952\",\"trail\":[\"53bc074d\"],\"name\":\"Transferring a project\",\"href\":\"/docs/projects/transferring-projects\",\"children\":\"$undefined\"}],\"name\":\"Projects\",\"href\":\"/docs/projects\",\"category\":\"Platform\"},{\"id\":\"a9dbbfef\",\"trail\":[],\"children\":[{\"id\":\"ee9074e3\",\"trail\":[\"a9dbbfef\"],\"name\":\"General Settings\",\"href\":\"/docs/project-configuration/general-settings\",\"children\":\"$undefined\"},{\"id\":\"82300e6a\",\"trail\":[\"a9dbbfef\"],\"name\":\"Project Settings\",\"href\":\"/docs/project-configuration/project-settings\",\"children\":\"$undefined\"},{\"id\":\"084f938e\",\"trail\":[\"a9dbbfef\"],\"name\":\"Git Configuration\",\"href\":\"/docs/project-configuration/git-configuration\",\"children\":\"$undefined\"},{\"id\":\"743f5ba7\",\"trail\":[\"a9dbbfef\"],\"name\":\"Git Settings\",\"href\":\"/docs/project-configuration/git-settings\",\"children\":\"$undefined\"},{\"id\":\"e5e9458d\",\"trail\":[\"a9dbbfef\"],\"name\":\"Global Configuration\",\"href\":\"/docs/project-configuration/global-configuration\",\"children\":\"$undefined\"},{\"id\":\"6f294f23\",\"trail\":[\"a9dbbfef\"],\"name\":\"Security settings\",\"href\":\"/docs/project-configuration/security-settings\",\"children\":\"$undefined\"}],\"name\":\"Project Configuration\",\"href\":\"/docs/project-configuration\",\"category\":\"Platform\"},{\"id\":\"6f24a24b\",\"trail\":[],\"name\":\"Activity Log\",\"href\":\"/docs/activity-log\",\"category\":\"Access\",\"children\":\"$undefined\"},{\"id\":\"9aa54bf2\",\"trail\":[],\"name\":\"Attack Challenge Mode\",\"href\":\"/docs/attack-challenge-mode\",\"category\":\"Security\",\"children\":\"$undefined\"},{\"id\":\"1ad165bb\",\"trail\":[],\"name\":\"Audit Logs\",\"href\":\"/docs/audit-log\",\"category\":\"Security\",\"children\":\"$undefined\"},{\"id\":\"e3e85023\",\"trail\":[],\"children\":[{\"id\":\"5a4fa99c\",\"trail\":[\"e3e85023\"],\"name\":\"Server Uploads\",\"href\":\"/docs/vercel-blob/server-upload\",\"children\":\"$undefined\"},{\"id\":\"56f45a09\",\"trail\":[\"e3e85023\"],\"name\":\"Client Uploads\",\"href\":\"/docs/vercel-blob/client-upload\",\"children\":\"$undefined\"},{\"id\":\"172a5cac\",\"trail\":[\"e3e85023\"],\"name\":\"Using the SDK\",\"href\":\"/docs/vercel-blob/using-blob-sdk\",\"children\":\"$undefined\"},{\"id\":\"a38e531a\",\"trail\":[\"e3e85023\"],\"name\":\"Pricing\",\"href\":\"/docs/vercel-blob/usage-and-pricing\",\"children\":\"$undefined\"}],\"name\":\"Blob\",\"href\":\"/docs/vercel-blob\",\"category\":\"Storage\"},{\"id\":\"34f71b1c\",\"trail\":[],\"children\":[{\"id\":\"b9b67fbd\",\"trail\":[\"34f71b1c\"],\"name\":\"Build Features\",\"href\":\"/docs/builds/build-features\",\"children\":\"$undefined\"},{\"id\":\"c513a6d6\",\"trail\":[\"34f71b1c\"],\"children\":[{\"id\":\"012f0ece\",\"trail\":[\"34f71b1c\",\"c513a6d6\"],\"name\":\"Build image Node.js versions\",\"href\":\"/docs/builds/build-image/build-image\",\"children\":\"$undefined\"}],\"name\":\"Build Image\",\"href\":\"/docs/builds/build-image\"},{\"id\":\"50216c8a\",\"trail\":[\"34f71b1c\"],\"name\":\"Build Queues\",\"href\":\"/docs/builds/build-queues\",\"children\":\"$undefined\"},{\"id\":\"312147b4\",\"trail\":[\"34f71b1c\"],\"name\":\"Configuring a Build\",\"href\":\"/docs/builds/configure-a-build\",\"children\":\"$undefined\"},{\"id\":\"f36f60a6\",\"trail\":[\"34f71b1c\"],\"name\":\"Managing Builds\",\"href\":\"/docs/builds/managing-builds\",\"children\":\"$undefined\"}],\"name\":\"Builds\",\"href\":\"/docs/builds\",\"category\":\"Build \u0026 Deploy\"},{\"id\":\"42b67d72\",\"trail\":[],\"children\":[{\"id\":\"bb192bb6\",\"trail\":[\"42b67d72\"],\"name\":\"Deploying from CLI\",\"href\":\"/docs/cli/deploying-from-cli\",\"children\":\"$undefined\"},{\"id\":\"ccd57f33\",\"trail\":[\"42b67d72\"],\"name\":\"Project Linking\",\"href\":\"/docs/cli/project-linking\",\"children\":\"$undefined\"},{\"id\":\"25119df5\",\"trail\":[\"42b67d72\"],\"name\":\"Telemetry\",\"href\":\"/docs/cli/about-telemetry\",\"children\":\"$undefined\"},{\"id\":\"5b002ddb\",\"trail\":[\"42b67d72\"],\"name\":\"Global Options\",\"href\":\"/docs/cli/global-options\",\"children\":\"$undefined\"},{\"id\":\"99b6d5f0\",\"trail\":[\"42b67d72\"],\"name\":\"vercel alias\",\"href\":\"/docs/cli/alias\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"6f5ee561\",\"trail\":[\"42b67d72\"],\"name\":\"vercel bisect\",\"href\":\"/docs/cli/bisect\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"db987a40\",\"trail\":[\"42b67d72\"],\"name\":\"vercel build\",\"href\":\"/docs/cli/build\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"91e531a7\",\"trail\":[\"42b67d72\"],\"name\":\"vercel certs\",\"href\":\"/docs/cli/certs\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"c342e21b\",\"trail\":[\"42b67d72\"],\"name\":\"vercel deploy\",\"href\":\"/docs/cli/deploy\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"3307e47f\",\"trail\":[\"42b67d72\"],\"name\":\"vercel dev\",\"href\":\"/docs/cli/dev\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"e0c0d703\",\"trail\":[\"42b67d72\"],\"name\":\"vercel dns\",\"href\":\"/docs/cli/dns\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"fce95180\",\"trail\":[\"42b67d72\"],\"name\":\"vercel domains\",\"href\":\"/docs/cli/domains\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"3c60704e\",\"trail\":[\"42b67d72\"],\"name\":\"vercel env\",\"href\":\"/docs/cli/env\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"41b48703\",\"trail\":[\"42b67d72\"],\"name\":\"vercel git\",\"href\":\"/docs/cli/git\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"18b7ded3\",\"trail\":[\"42b67d72\"],\"name\":\"vercel help\",\"href\":\"/docs/cli/help\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"88d4e32b\",\"trail\":[\"42b67d72\"],\"name\":\"vercel init\",\"href\":\"/docs/cli/init\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"4232682c\",\"trail\":[\"42b67d72\"],\"name\":\"vercel inspect\",\"href\":\"/docs/cli/inspect\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"b62e588a\",\"trail\":[\"42b67d72\"],\"name\":\"vercel install\",\"href\":\"/docs/cli/install\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"ecf54434\",\"trail\":[\"42b67d72\"],\"name\":\"vercel integration\",\"href\":\"/docs/cli/integration\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"18597aeb\",\"trail\":[\"42b67d72\"],\"name\":\"vercel integration-resource\",\"href\":\"/docs/cli/integration-resource\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"fe1d0e72\",\"trail\":[\"42b67d72\"],\"name\":\"vercel link\",\"href\":\"/docs/cli/link\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"4234b568\",\"trail\":[\"42b67d72\"],\"name\":\"vercel list\",\"href\":\"/docs/cli/list\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"7dc357df\",\"trail\":[\"42b67d72\"],\"name\":\"vercel login\",\"href\":\"/docs/cli/login\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"f6ea7a73\",\"trail\":[\"42b67d72\"],\"name\":\"vercel logout\",\"href\":\"/docs/cli/logout\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"2231b4c7\",\"trail\":[\"42b67d72\"],\"name\":\"vercel logs\",\"href\":\"/docs/cli/logs\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"c0de4ad3\",\"trail\":[\"42b67d72\"],\"name\":\"vercel project\",\"href\":\"/docs/cli/project\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"e43e060b\",\"trail\":[\"42b67d72\"],\"name\":\"vercel promote\",\"href\":\"/docs/cli/promote\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"2846fbbf\",\"trail\":[\"42b67d72\"],\"name\":\"vercel pull\",\"href\":\"/docs/cli/pull\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"3b14b6e4\",\"trail\":[\"42b67d72\"],\"name\":\"vercel redeploy\",\"href\":\"/docs/cli/redeploy\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"5ccd72eb\",\"trail\":[\"42b67d72\"],\"name\":\"vercel remove\",\"href\":\"/docs/cli/remove\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"6ce48c27\",\"trail\":[\"42b67d72\"],\"name\":\"vercel rollback\",\"href\":\"/docs/cli/rollback\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"d71399cf\",\"trail\":[\"42b67d72\"],\"name\":\"vercel switch\",\"href\":\"/docs/cli/switch\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"b5539beb\",\"trail\":[\"42b67d72\"],\"name\":\"vercel teams\",\"href\":\"/docs/cli/teams\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"667aa113\",\"trail\":[\"42b67d72\"],\"name\":\"vercel telemetry\",\"href\":\"/docs/cli/telemetry\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"dd0204f8\",\"trail\":[\"42b67d72\"],\"name\":\"vercel whoami\",\"href\":\"/docs/cli/whoami\",\"isCode\":\"true\",\"children\":\"$undefined\"}],\"name\":\"CLI\",\"href\":\"/docs/cli\",\"category\":\"Platform\"},{\"id\":\"31c22b7c\",\"trail\":[],\"children\":[{\"id\":\"935a5432\",\"trail\":[\"31c22b7c\"],\"name\":\"Enabling Comments\",\"href\":\"/docs/comments/how-comments-work\",\"children\":\"$undefined\"},{\"id\":\"c4726d0b\",\"trail\":[\"31c22b7c\"],\"name\":\"Using Comments\",\"href\":\"/docs/comments/using-comments\",\"children\":\"$undefined\"},{\"id\":\"33ac0048\",\"trail\":[\"31c22b7c\"],\"name\":\"Managing Comments\",\"href\":\"/docs/comments/managing-comments\",\"children\":\"$undefined\"},{\"id\":\"ce1b94c8\",\"trail\":[\"31c22b7c\"],\"name\":\"Integrations\",\"href\":\"/docs/comments/integrations\",\"children\":\"$undefined\"}],\"name\":\"Comments\",\"href\":\"/docs/comments\",\"category\":\"Collaboration\"},{\"id\":\"84003256\",\"trail\":[],\"children\":[{\"id\":\"29428141\",\"trail\":[\"84003256\"],\"name\":\"Security \u0026 Compliance Measures\",\"href\":\"/docs/security/compliance\",\"children\":\"$undefined\"},{\"id\":\"78eec3c8\",\"trail\":[\"84003256\"],\"name\":\"Shared Responsibility Model\",\"href\":\"/docs/security/shared-responsibility\",\"children\":\"$undefined\"},{\"id\":\"54c6ce0e\",\"trail\":[\"84003256\"],\"name\":\"PCI DSS iframe Integration\",\"href\":\"/docs/security/pci-dss\",\"children\":\"$undefined\"},{\"id\":\"dadc182c\",\"trail\":[\"84003256\"],\"name\":\"Reverse Proxy Servers and Vercel\",\"href\":\"/docs/security/reverse-proxy\",\"children\":\"$undefined\"},{\"id\":\"cefa7dde\",\"trail\":[\"84003256\"],\"name\":\"Access Control\",\"href\":\"/docs/security/access-control\",\"children\":\"$undefined\"}],\"name\":\"Compliance\",\"href\":\"/docs/security\",\"category\":\"Security\"},{\"id\":\"ef741b49\",\"trail\":[],\"children\":[{\"id\":\"8c13e0e1\",\"trail\":[\"ef741b49\"],\"name\":\"Getting Started\",\"href\":\"/docs/cron-jobs/quickstart\",\"children\":\"$undefined\"},{\"id\":\"8a73631d\",\"trail\":[\"ef741b49\"],\"name\":\"Managing Cron Jobs\",\"href\":\"/docs/cron-jobs/manage-cron-jobs\",\"children\":\"$undefined\"},{\"id\":\"db63714a\",\"trail\":[\"ef741b49\"],\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/cron-jobs/usage-and-pricing\",\"children\":\"$undefined\"}],\"name\":\"Cron Jobs\",\"href\":\"/docs/cron-jobs\",\"category\":\"Compute\"},{\"id\":\"96c17534\",\"trail\":[],\"children\":[{\"id\":\"498b5d1d\",\"trail\":[\"96c17534\"],\"name\":\"Manage Data Cache\",\"href\":\"/docs/data-cache/manage-data-cache\",\"children\":\"$undefined\"}],\"name\":\"Data Cache\",\"href\":\"/docs/data-cache\",\"category\":\"CDN\"},{\"id\":\"b0346835\",\"trail\":[],\"name\":\"DDoS Mitigation\",\"href\":\"/docs/ddos-mitigation\",\"category\":\"Security\",\"children\":\"$undefined\"},{\"id\":\"1a4b5b9f\",\"trail\":[],\"name\":\"Deploy Hooks\",\"href\":\"/docs/deploy-hooks\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"7e00952c\",\"trail\":[],\"children\":[{\"id\":\"34d751aa\",\"trail\":[\"7e00952c\"],\"children\":[{\"id\":\"74f44602\",\"trail\":[\"7e00952c\",\"34d751aa\"],\"name\":\"Exceptions\",\"href\":\"/docs/deployment-protection/methods-to-bypass-deployment-protection/deployment-protection-exceptions\",\"children\":\"$undefined\"},{\"id\":\"81add689\",\"trail\":[\"7e00952c\",\"34d751aa\"],\"name\":\"OPTIONS Allowlist\",\"href\":\"/docs/deployment-protection/methods-to-bypass-deployment-protection/options-allowlist\",\"children\":\"$undefined\"},{\"id\":\"3ea261ca\",\"trail\":[\"7e00952c\",\"34d751aa\"],\"name\":\"Protection Bypass for Automation\",\"href\":\"/docs/deployment-protection/methods-to-bypass-deployment-protection/protection-bypass-automation\",\"children\":\"$undefined\"},{\"id\":\"7ebd017e\",\"trail\":[\"7e00952c\",\"34d751aa\"],\"name\":\"Sharable Links\",\"href\":\"/docs/deployment-protection/methods-to-bypass-deployment-protection/sharable-links\",\"children\":\"$undefined\"}],\"name\":\"Bypass Deployment Protection\",\"href\":\"/docs/deployment-protection/methods-to-bypass-deployment-protection\"},{\"id\":\"db8ad715\",\"trail\":[\"7e00952c\"],\"children\":[{\"id\":\"f2062b49\",\"trail\":[\"7e00952c\",\"db8ad715\"],\"name\":\"Password Protection\",\"href\":\"/docs/deployment-protection/methods-to-protect-deployments/password-protection\",\"children\":\"$undefined\"},{\"id\":\"430f4751\",\"trail\":[\"7e00952c\",\"db8ad715\"],\"name\":\"Trusted IPs\",\"href\":\"/docs/deployment-protection/methods-to-protect-deployments/trusted-ips\",\"children\":\"$undefined\"},{\"id\":\"4693170f\",\"trail\":[\"7e00952c\",\"db8ad715\"],\"name\":\"Vercel Authentication\",\"href\":\"/docs/deployment-protection/methods-to-protect-deployments/vercel-authentication\",\"children\":\"$undefined\"}],\"name\":\"Protect Deployments\",\"href\":\"/docs/deployment-protection/methods-to-protect-deployments\"}],\"name\":\"Deployment Protection\",\"href\":\"/docs/deployment-protection\",\"category\":\"Access\"},{\"id\":\"bade68d6\",\"trail\":[],\"name\":\"Deployment Retention\",\"href\":\"/docs/deployment-retention\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"984c4eb2\",\"trail\":[],\"children\":[{\"id\":\"1eb78d0d\",\"trail\":[\"984c4eb2\"],\"name\":\"Environments\",\"href\":\"/docs/deployments/environments\",\"children\":\"$undefined\"},{\"id\":\"1f6d4d5d\",\"trail\":[\"984c4eb2\"],\"name\":\"Generated URLs\",\"href\":\"/docs/deployments/generated-urls\",\"children\":\"$undefined\"},{\"id\":\"fc6fe791\",\"trail\":[\"984c4eb2\"],\"name\":\"Managing Deployments\",\"href\":\"/docs/deployments/managing-deployments\",\"children\":\"$undefined\"},{\"id\":\"caee8976\",\"trail\":[\"984c4eb2\"],\"name\":\"Promoting Deployments\",\"href\":\"/docs/deployments/promoting-a-deployment\",\"children\":\"$undefined\"},{\"id\":\"6f53bb70\",\"trail\":[\"984c4eb2\"],\"name\":\"Troubleshoot Build Errors\",\"href\":\"/docs/deployments/troubleshoot-a-build\",\"children\":\"$undefined\"},{\"id\":\"2ccc1da3\",\"trail\":[\"984c4eb2\"],\"name\":\"Accessing Build Logs\",\"href\":\"/docs/deployments/logs\",\"children\":\"$undefined\"},{\"id\":\"56e48e56\",\"trail\":[\"984c4eb2\"],\"name\":\"Claim Deployments\",\"href\":\"/docs/deployments/claim-deployments\",\"children\":\"$undefined\"},{\"id\":\"f8e18dd9\",\"trail\":[\"984c4eb2\"],\"name\":\"Inspect OG Metadata\",\"href\":\"/docs/deployments/og-preview\",\"children\":\"$undefined\"},{\"id\":\"48856165\",\"trail\":[\"984c4eb2\"],\"name\":\"Preview Deployment Suffix\",\"href\":\"/docs/deployments/preview-deployment-suffix\",\"children\":\"$undefined\"},{\"id\":\"ea8a98f4\",\"trail\":[\"984c4eb2\"],\"name\":\"Sharing a Preview Deployment\",\"href\":\"/docs/deployments/sharing-deployments\",\"children\":\"$undefined\"}],\"name\":\"Deployments\",\"href\":\"/docs/deployments\",\"category\":\"Build \u0026 Deploy\"},{\"id\":\"a801990d\",\"trail\":[],\"name\":\"Directory Sync\",\"href\":\"/docs/directory-sync\",\"category\":\"Access\",\"children\":\"$undefined\"},{\"id\":\"fdfe4cdd\",\"trail\":[],\"children\":[{\"id\":\"6dd453fd\",\"trail\":[\"fdfe4cdd\"],\"children\":[{\"id\":\"da47f311\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Adding a Domain\",\"href\":\"/docs/domains/working-with-domains/add-a-domain\",\"children\":\"$undefined\"},{\"id\":\"ee9aa5f4\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Adding a Domain to an Environment\",\"href\":\"/docs/domains/working-with-domains/add-a-domain-to-environment\",\"children\":\"$undefined\"},{\"id\":\"20f67859\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Assigning a Domain to a Git Branch\",\"href\":\"/docs/domains/working-with-domains/assign-domain-to-a-git-branch\",\"children\":\"$undefined\"},{\"id\":\"40a9e31e\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Deploying \u0026 Redirecting Domains\",\"href\":\"/docs/domains/working-with-domains/deploying-and-redirecting\",\"children\":\"$undefined\"},{\"id\":\"6a73b783\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Removing a Domain\",\"href\":\"/docs/domains/working-with-domains/remove-a-domain\",\"children\":\"$undefined\"},{\"id\":\"f0fada4d\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Renewing a Domain\",\"href\":\"/docs/domains/working-with-domains/renew-a-domain\",\"children\":\"$undefined\"},{\"id\":\"a402445b\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Transferring Domains\",\"href\":\"/docs/domains/working-with-domains/transfer-your-domain\",\"children\":\"$undefined\"},{\"id\":\"3512efe9\",\"trail\":[\"fdfe4cdd\",\"6dd453fd\"],\"name\":\"Viewing \u0026 Searching Domains\",\"href\":\"/docs/domains/working-with-domains/view-and-search-domains\",\"children\":\"$undefined\"}],\"name\":\"Working with Domains\",\"href\":\"/docs/domains/working-with-domains\"},{\"id\":\"597f03ef\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Working with DNS\",\"href\":\"/docs/domains/working-with-dns\",\"children\":\"$undefined\"},{\"id\":\"1cea3c04\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Managing DNS Records\",\"href\":\"/docs/domains/managing-dns-records\",\"children\":\"$undefined\"},{\"id\":\"a034352e\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Working with Nameservers\",\"href\":\"/docs/domains/working-with-nameservers\",\"children\":\"$undefined\"},{\"id\":\"32a38c07\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Managing Nameservers\",\"href\":\"/docs/domains/managing-nameservers\",\"children\":\"$undefined\"},{\"id\":\"bfa83208\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Working with SSL\",\"href\":\"/docs/domains/working-with-ssl\",\"children\":\"$undefined\"},{\"id\":\"48617ab8\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Custom SSL Certificates\",\"href\":\"/docs/domains/custom-SSL-certificate\",\"children\":\"$undefined\"},{\"id\":\"b2c5cbee\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Supported Domains\",\"href\":\"/docs/domains/supported-domains\",\"children\":\"$undefined\"},{\"id\":\"abb4ad07\",\"trail\":[\"fdfe4cdd\"],\"name\":\"Troubleshooting Domains\",\"href\":\"/docs/domains/troubleshooting\",\"children\":\"$undefined\"}],\"name\":\"Domains\",\"href\":\"/docs/domains\",\"category\":\"CDN\"},{\"id\":\"c7b0574d\",\"trail\":[],\"name\":\"Draft Mode\",\"href\":\"/docs/draft-mode\",\"category\":\"Collaboration\",\"children\":\"$undefined\"},{\"id\":\"ca55349e\",\"trail\":[],\"name\":\"Edge Cache\",\"href\":\"/docs/edge-cache\",\"category\":\"CDN\",\"children\":\"$undefined\"},{\"id\":\"5ffdf857\",\"trail\":[],\"children\":[{\"id\":\"9b407c88\",\"trail\":[\"5ffdf857\"],\"name\":\"Getting Started\",\"href\":\"/docs/edge-config/get-started\",\"children\":\"$undefined\"},{\"id\":\"848b8998\",\"trail\":[\"5ffdf857\"],\"name\":\"Using Edge Config\",\"href\":\"/docs/edge-config/using-edge-config\",\"children\":\"$undefined\"},{\"id\":\"4158023e\",\"trail\":[\"5ffdf857\"],\"name\":\"Edge Configs \u0026 REST API\",\"href\":\"/docs/edge-config/vercel-api\",\"children\":\"$undefined\"},{\"id\":\"59dc85c7\",\"trail\":[\"5ffdf857\"],\"name\":\"Edge Configs \u0026 Dashboard\",\"href\":\"/docs/edge-config/edge-config-dashboard\",\"children\":\"$undefined\"},{\"id\":\"fbbcfc3e\",\"trail\":[\"5ffdf857\"],\"name\":\"Edge Config SDK\",\"href\":\"/docs/edge-config/edge-config-sdk\",\"children\":\"$undefined\"},{\"id\":\"0909330f\",\"trail\":[\"5ffdf857\"],\"name\":\"Limits \u0026 Pricing\",\"href\":\"/docs/edge-config/edge-config-limits\",\"children\":\"$undefined\"},{\"id\":\"7f82d3f5\",\"trail\":[\"5ffdf857\"],\"children\":[{\"id\":\"0ba919cd\",\"trail\":[\"5ffdf857\",\"7f82d3f5\"],\"name\":\"DevCycle\",\"href\":\"/docs/edge-config/edge-config-integrations/devcycle-edge-config\",\"children\":\"$undefined\"},{\"id\":\"9ccd882c\",\"trail\":[\"5ffdf857\",\"7f82d3f5\"],\"name\":\"Hypertune\",\"href\":\"/docs/edge-config/edge-config-integrations/hypertune-edge-config\",\"children\":\"$undefined\"},{\"id\":\"0b6a2285\",\"trail\":[\"5ffdf857\",\"7f82d3f5\"],\"name\":\"LaunchDarkly\",\"href\":\"/docs/edge-config/edge-config-integrations/launchdarkly-edge-config\",\"children\":\"$undefined\"},{\"id\":\"25ee513a\",\"trail\":[\"5ffdf857\",\"7f82d3f5\"],\"name\":\"Split\",\"href\":\"/docs/edge-config/edge-config-integrations/split-edge-config\",\"children\":\"$undefined\"},{\"id\":\"a6749407\",\"trail\":[\"5ffdf857\",\"7f82d3f5\"],\"name\":\"Statsig\",\"href\":\"/docs/edge-config/edge-config-integrations/statsig-edge-config\",\"children\":\"$undefined\"}],\"name\":\"Integrations\",\"href\":\"/docs/edge-config/edge-config-integrations\"}],\"name\":\"Edge Config\",\"href\":\"/docs/edge-config\",\"category\":\"Storage\"},{\"id\":\"094f998c\",\"trail\":[],\"children\":[{\"id\":\"05e12d8d\",\"trail\":[\"094f998c\"],\"name\":\"Regions\",\"href\":\"/docs/edge-network/regions\",\"children\":\"$undefined\"},{\"id\":\"25e12152\",\"trail\":[\"094f998c\"],\"name\":\"Compression\",\"href\":\"/docs/edge-network/compression\",\"children\":\"$undefined\"},{\"id\":\"280572b9\",\"trail\":[\"094f998c\"],\"name\":\"Manage Usage\",\"href\":\"/docs/edge-network/manage-usage\",\"children\":\"$undefined\"}],\"name\":\"Edge Network\",\"href\":\"/docs/edge-network\",\"category\":\"CDN\"},{\"id\":\"80ecd269\",\"trail\":[],\"name\":\"Edit Mode\",\"href\":\"/docs/edit-mode\",\"category\":\"Collaboration\",\"children\":\"$undefined\"},{\"id\":\"08126a7c\",\"trail\":[],\"name\":\"Encryption\",\"href\":\"/docs/encryption\",\"category\":\"CDN\",\"children\":\"$undefined\"},{\"id\":\"d94e3d65\",\"trail\":[],\"children\":[{\"id\":\"1877b6a1\",\"trail\":[\"d94e3d65\"],\"name\":\"Framework Environment Variables\",\"href\":\"/docs/environment-variables/framework-environment-variables\",\"children\":\"$undefined\"},{\"id\":\"21c9b644\",\"trail\":[\"d94e3d65\"],\"name\":\"Managing Environment Variables\",\"href\":\"/docs/environment-variables/managing-environment-variables\",\"children\":\"$undefined\"},{\"id\":\"c5388422\",\"trail\":[\"d94e3d65\"],\"name\":\"Reserved Environment Variables\",\"href\":\"/docs/environment-variables/reserved-environment-variables\",\"children\":\"$undefined\"},{\"id\":\"a7352628\",\"trail\":[\"d94e3d65\"],\"name\":\"Sensitive Environment Variables\",\"href\":\"/docs/environment-variables/sensitive-environment-variables\",\"children\":\"$undefined\"},{\"id\":\"6501daf4\",\"trail\":[\"d94e3d65\"],\"name\":\"Shared Environment Variables\",\"href\":\"/docs/environment-variables/shared-environment-variables\",\"children\":\"$undefined\"},{\"id\":\"2fe4fed5\",\"trail\":[\"d94e3d65\"],\"name\":\"System Environment Variables\",\"href\":\"/docs/environment-variables/system-environment-variables\",\"children\":\"$undefined\"}],\"name\":\"Environment Variables\",\"href\":\"/docs/environment-variables\",\"category\":\"Build \u0026 Deploy\"},{\"id\":\"13db75db\",\"trail\":[],\"children\":[{\"id\":\"d6f646a5\",\"trail\":[\"13db75db\"],\"children\":[{\"id\":\"1aecbe62\",\"trail\":[\"13db75db\",\"d6f646a5\"],\"name\":\"Getting Started\",\"href\":\"/docs/feature-flags/flags-explorer/getting-started\",\"children\":\"$undefined\"},{\"id\":\"dce71944\",\"trail\":[\"13db75db\",\"d6f646a5\"],\"name\":\"Reference\",\"href\":\"/docs/feature-flags/flags-explorer/reference\",\"children\":\"$undefined\"}],\"name\":\"Flags Explorer\",\"href\":\"/docs/feature-flags/flags-explorer\"},{\"id\":\"2e2b6fec\",\"trail\":[\"13db75db\"],\"name\":\"Flags SDK\",\"href\":\"/docs/feature-flags/feature-flags-pattern\",\"children\":\"$undefined\"},{\"id\":\"8e17bd78\",\"trail\":[\"13db75db\"],\"name\":\"With Runtime Logs\",\"href\":\"/docs/feature-flags/integrate-with-runtime-logs\",\"children\":\"$undefined\"},{\"id\":\"f0c7ad4a\",\"trail\":[\"13db75db\"],\"name\":\"With Vercel Platform\",\"href\":\"/docs/feature-flags/integrate-vercel-platform\",\"children\":\"$undefined\"},{\"id\":\"bf0f0b18\",\"trail\":[\"13db75db\"],\"name\":\"With Web Analytics\",\"href\":\"/docs/feature-flags/integrate-with-web-analytics\",\"children\":\"$undefined\"}],\"name\":\"Feature Flags\",\"href\":\"/docs/feature-flags\",\"category\":\"Collaboration\"},{\"id\":\"f4b509a2\",\"trail\":[],\"children\":[{\"id\":\"ccf42587\",\"trail\":[\"f4b509a2\"],\"name\":\"Firewall Concepts\",\"href\":\"/docs/vercel-firewall/firewall-concepts\",\"children\":\"$undefined\"},{\"id\":\"5ad940ff\",\"trail\":[\"f4b509a2\"],\"name\":\"Firewall API\",\"href\":\"/docs/vercel-firewall/firewall-api\",\"children\":\"$undefined\"},{\"id\":\"004db72d\",\"trail\":[\"f4b509a2\"],\"name\":\"Firewall Alerts\",\"href\":\"/docs/vercel-firewall/firewall-alerts\",\"children\":\"$undefined\"},{\"id\":\"6c49b337\",\"trail\":[\"f4b509a2\"],\"name\":\"Firewall Observability\",\"href\":\"/docs/vercel-firewall/firewall-observability\",\"children\":\"$undefined\"}],\"name\":\"Firewall\",\"href\":\"/docs/vercel-firewall\",\"category\":\"Security\"},{\"id\":\"22254a95\",\"trail\":[],\"children\":[{\"id\":\"3fd034a2\",\"trail\":[\"22254a95\"],\"name\":\"Getting Started\",\"href\":\"/docs/functions/quickstart\",\"children\":\"$undefined\"},{\"id\":\"0c94a014\",\"trail\":[\"22254a95\"],\"name\":\"Streaming\",\"href\":\"/docs/functions/streaming-functions\",\"children\":\"$undefined\"},{\"id\":\"72762d96\",\"trail\":[\"22254a95\"],\"name\":\"Fluid Compute\",\"href\":\"/docs/functions/fluid-compute\",\"children\":\"$undefined\"},{\"id\":\"ff2e05f3\",\"trail\":[\"22254a95\"],\"children\":[{\"id\":\"f06a39ac\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"children\":[{\"id\":\"8b91ba32\",\"trail\":[\"22254a95\",\"ff2e05f3\",\"f06a39ac\"],\"name\":\"Advanced Node.js Usage\",\"href\":\"/docs/functions/runtimes/node-js/advanced-node-configuration\",\"children\":\"$undefined\"},{\"id\":\"51152c6e\",\"trail\":[\"22254a95\",\"ff2e05f3\",\"f06a39ac\"],\"name\":\"Supported Node.js versions\",\"href\":\"/docs/functions/runtimes/node-js/node-js-versions\",\"children\":\"$undefined\"}],\"name\":\"Node.js\",\"href\":\"/docs/functions/runtimes/node-js\"},{\"id\":\"31ae1608\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"name\":\"Python\",\"href\":\"/docs/functions/runtimes/python\",\"children\":\"$undefined\"},{\"id\":\"27adc776\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"name\":\"Go\",\"href\":\"/docs/functions/runtimes/go\",\"children\":\"$undefined\"},{\"id\":\"62d0d873\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"name\":\"Ruby\",\"href\":\"/docs/functions/runtimes/ruby\",\"children\":\"$undefined\"},{\"id\":\"c152d7a6\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"name\":\"Wasm\",\"href\":\"/docs/functions/runtimes/wasm\",\"children\":\"$undefined\"},{\"id\":\"572d9687\",\"trail\":[\"22254a95\",\"ff2e05f3\"],\"children\":[{\"id\":\"73750ed7\",\"trail\":[\"22254a95\",\"ff2e05f3\",\"572d9687\"],\"name\":\"Edge Functions\",\"href\":\"/docs/functions/runtimes/edge/edge-functions\",\"children\":\"$undefined\"}],\"name\":\"Edge Runtime\",\"href\":\"/docs/functions/runtimes/edge\"}],\"name\":\"Runtimes\",\"href\":\"/docs/functions/runtimes\"},{\"id\":\"376bade4\",\"trail\":[\"22254a95\"],\"children\":[{\"id\":\"d35e5c7c\",\"trail\":[\"22254a95\",\"376bade4\"],\"name\":\"Duration\",\"href\":\"/docs/functions/configuring-functions/duration\",\"children\":\"$undefined\"},{\"id\":\"c734637a\",\"trail\":[\"22254a95\",\"376bade4\"],\"name\":\"Memory\",\"href\":\"/docs/functions/configuring-functions/memory\",\"children\":\"$undefined\"},{\"id\":\"78654333\",\"trail\":[\"22254a95\",\"376bade4\"],\"name\":\"Runtime\",\"href\":\"/docs/functions/configuring-functions/runtime\",\"children\":\"$undefined\"},{\"id\":\"d5fd22f2\",\"trail\":[\"22254a95\",\"376bade4\"],\"name\":\"Region\",\"href\":\"/docs/functions/configuring-functions/region\",\"children\":\"$undefined\"},{\"id\":\"c4c5b4c6\",\"trail\":[\"22254a95\",\"376bade4\"],\"name\":\"Advanced Configuration\",\"href\":\"/docs/functions/configuring-functions/advanced-configuration\",\"children\":\"$undefined\"}],\"name\":\"Configuring Functions\",\"href\":\"/docs/functions/configuring-functions\"},{\"id\":\"9f2540cd\",\"trail\":[\"22254a95\"],\"children\":[{\"id\":\"052ffe54\",\"trail\":[\"22254a95\",\"9f2540cd\"],\"name\":\"@vercel/functions\",\"href\":\"/docs/functions/functions-api-reference/vercel-functions-package\",\"isCode\":\"true\",\"children\":\"$undefined\"}],\"name\":\"API Reference\",\"href\":\"/docs/functions/functions-api-reference\"},{\"id\":\"29539709\",\"trail\":[\"22254a95\"],\"name\":\"Logs\",\"href\":\"/docs/functions/logs\",\"children\":\"$undefined\"},{\"id\":\"39b0a7c3\",\"trail\":[\"22254a95\"],\"name\":\"Limits\",\"href\":\"/docs/functions/limitations\",\"children\":\"$undefined\"},{\"id\":\"9dbfe08d\",\"trail\":[\"22254a95\"],\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/functions/usage-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"d53254bc\",\"trail\":[\"22254a95\"],\"name\":\"Concurrency Scaling\",\"href\":\"/docs/functions/concurrency-scaling\",\"children\":\"$undefined\"}],\"name\":\"Functions\",\"href\":\"/docs/functions\",\"category\":\"Compute\"},{\"id\":\"9df50168\",\"trail\":[],\"children\":[{\"id\":\"f540a641\",\"trail\":[\"9df50168\"],\"name\":\"Projects and Deployments\",\"href\":\"/docs/getting-started-with-vercel/projects-deployments\",\"children\":\"$undefined\"},{\"id\":\"aad267ba\",\"trail\":[\"9df50168\"],\"name\":\"Use a Template\",\"href\":\"/docs/getting-started-with-vercel/template\",\"children\":\"$undefined\"},{\"id\":\"87baa738\",\"trail\":[\"9df50168\"],\"name\":\"Import Existing Project\",\"href\":\"/docs/getting-started-with-vercel/import\",\"children\":\"$undefined\"},{\"id\":\"fdcb6672\",\"trail\":[\"9df50168\"],\"name\":\"Add a Domain\",\"href\":\"/docs/getting-started-with-vercel/domains\",\"children\":\"$undefined\"},{\"id\":\"2e14b816\",\"trail\":[\"9df50168\"],\"name\":\"Buy a Domain\",\"href\":\"/docs/getting-started-with-vercel/buy-domain\",\"children\":\"$undefined\"},{\"id\":\"988221b3\",\"trail\":[\"9df50168\"],\"name\":\"Transfer an Existing Domain\",\"href\":\"/docs/getting-started-with-vercel/use-existing\",\"children\":\"$undefined\"},{\"id\":\"c3b87eb7\",\"trail\":[\"9df50168\"],\"name\":\"Collaborate\",\"href\":\"/docs/getting-started-with-vercel/collaborate\",\"children\":\"$undefined\"},{\"id\":\"ac5ad4cd\",\"trail\":[\"9df50168\"],\"name\":\"Next Steps\",\"href\":\"/docs/getting-started-with-vercel/next-steps\",\"children\":\"$undefined\"}],\"name\":\"Getting Started\",\"href\":\"/docs/getting-started-with-vercel\",\"topLevel\":0},{\"id\":\"af397dc1\",\"trail\":[],\"children\":[{\"id\":\"7bc96a8a\",\"trail\":[\"af397dc1\"],\"name\":\"GitHub\",\"href\":\"/docs/git/vercel-for-github\",\"children\":\"$undefined\"},{\"id\":\"66487847\",\"trail\":[\"af397dc1\"],\"name\":\"Azure DevOps\",\"href\":\"/docs/git/vercel-for-azure-pipelines\",\"children\":\"$undefined\"},{\"id\":\"c3e27c7a\",\"trail\":[\"af397dc1\"],\"name\":\"Bitbucket\",\"href\":\"/docs/git/vercel-for-bitbucket\",\"children\":\"$undefined\"},{\"id\":\"3ba48dbe\",\"trail\":[\"af397dc1\"],\"name\":\"GitLab\",\"href\":\"/docs/git/vercel-for-gitlab\",\"children\":\"$undefined\"}],\"name\":\"Git Integrations\",\"href\":\"/docs/git\",\"category\":\"Build \u0026 Deploy\"},{\"id\":\"b507172a\",\"trail\":[],\"children\":[{\"id\":\"d885fe30\",\"trail\":[\"b507172a\"],\"name\":\"Security Headers\",\"href\":\"/docs/headers/security-headers\",\"children\":\"$undefined\"},{\"id\":\"47d53e12\",\"trail\":[\"b507172a\"],\"name\":\"Cache-Control Headers\",\"href\":\"/docs/headers/cache-control-headers\",\"children\":\"$undefined\"},{\"id\":\"c7e0544f\",\"trail\":[\"b507172a\"],\"name\":\"Request Headers\",\"href\":\"/docs/headers/request-headers\",\"children\":\"$undefined\"},{\"id\":\"ddd6837f\",\"trail\":[\"b507172a\"],\"name\":\"Response Headers\",\"href\":\"/docs/headers/response-headers\",\"children\":\"$undefined\"}],\"name\":\"Headers\",\"href\":\"/docs/headers\",\"category\":\"CDN\"},{\"id\":\"f0da8254\",\"trail\":[],\"children\":[{\"id\":\"4718dd5b\",\"trail\":[\"f0da8254\"],\"name\":\"Getting Started\",\"href\":\"/docs/image-optimization/quickstart\",\"children\":\"$undefined\"},{\"id\":\"e565a465\",\"trail\":[\"f0da8254\"],\"name\":\"Limits and Pricing\",\"href\":\"/docs/image-optimization/limits-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"293e376d\",\"trail\":[\"f0da8254\"],\"name\":\"Managing Usage \u0026 Costs\",\"href\":\"/docs/image-optimization/managing-image-optimization-costs\",\"children\":\"$undefined\"},{\"id\":\"fca5e486\",\"trail\":[\"f0da8254\"],\"name\":\"Legacy Pricing\",\"href\":\"/docs/image-optimization/legacy-pricing\",\"children\":\"$undefined\"}],\"name\":\"Image Optimization\",\"href\":\"/docs/image-optimization\",\"category\":\"CDN\"},{\"id\":\"2e3ee489\",\"trail\":[],\"children\":[{\"id\":\"c56e1730\",\"trail\":[\"2e3ee489\"],\"name\":\"Migration Guide\",\"href\":\"/docs/incremental-migration/migration-guide\",\"children\":\"$undefined\"},{\"id\":\"62f0f26b\",\"trail\":[\"2e3ee489\"],\"name\":\"Technical Guidelines\",\"href\":\"/docs/incremental-migration/technical-guidelines\",\"children\":\"$undefined\"}],\"name\":\"Incremental Migration\",\"href\":\"/docs/incremental-migration\",\"topLevel\":2},{\"id\":\"530fd302\",\"trail\":[],\"children\":[{\"id\":\"14731c8d\",\"trail\":[\"530fd302\"],\"name\":\"Getting Started\",\"href\":\"/docs/incremental-static-regeneration/quickstart\",\"children\":\"$undefined\"},{\"id\":\"8cd78993\",\"trail\":[\"530fd302\"],\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/incremental-static-regeneration/limits-and-pricing\",\"children\":\"$undefined\"}],\"name\":\"Incremental Static Regeneration\",\"href\":\"/docs/incremental-static-regeneration\",\"category\":\"Compute\"},{\"id\":\"63653aba\",\"trail\":[],\"name\":\"Instant Rollback\",\"href\":\"/docs/instant-rollback\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"6091d15a\",\"trail\":[],\"children\":[{\"id\":\"aa6b132e\",\"trail\":[\"6091d15a\"],\"children\":[{\"id\":\"48579216\",\"trail\":[\"6091d15a\",\"aa6b132e\"],\"name\":\"Add a Connectable Account\",\"href\":\"/docs/integrations/install-an-integration/add-a-connectable-account\",\"children\":\"$undefined\"},{\"id\":\"1ca00412\",\"trail\":[\"6091d15a\",\"aa6b132e\"],\"name\":\"Add a Native Integration\",\"href\":\"/docs/integrations/install-an-integration/product-integration\",\"children\":\"$undefined\"},{\"id\":\"0514bc16\",\"trail\":[\"6091d15a\",\"aa6b132e\"],\"name\":\"Permissions and Access\",\"href\":\"/docs/integrations/install-an-integration/manage-integrations-reference\",\"children\":\"$undefined\"}],\"name\":\"Extend Vercel\",\"href\":\"/docs/integrations/install-an-integration\"},{\"id\":\"3f96ae28\",\"trail\":[\"6091d15a\"],\"children\":[{\"id\":\"4e6d303a\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Native integration concepts\",\"href\":\"/docs/integrations/create-integration/native-integration\",\"children\":\"$undefined\"},{\"id\":\"f1c36c1c\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Create a Native Integration\",\"href\":\"/docs/integrations/create-integration/marketplace-product\",\"children\":\"$undefined\"},{\"id\":\"9aaa5261\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Deployment integration actions\",\"href\":\"/docs/integrations/create-integration/deployment-integration-action\",\"children\":\"$undefined\"},{\"id\":\"e83353b1\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Native Integration Flows\",\"href\":\"/docs/integrations/create-integration/marketplace-flows\",\"children\":\"$undefined\"},{\"id\":\"f658c0a4\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Native Integrations REST API\",\"href\":\"/docs/integrations/create-integration/marketplace-api\",\"children\":\"$undefined\"},{\"id\":\"db54ee1b\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Integration Approval Checklist\",\"href\":\"/docs/integrations/create-integration/approval-checklist\",\"children\":\"$undefined\"},{\"id\":\"29ab2164\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Requirements for listing an Integration\",\"href\":\"/docs/integrations/create-integration/submit-integration\",\"children\":\"$undefined\"},{\"id\":\"b4558ba1\",\"trail\":[\"6091d15a\",\"3f96ae28\"],\"name\":\"Upgrade an Integration\",\"href\":\"/docs/integrations/create-integration/upgrade-integration\",\"children\":\"$undefined\"}],\"name\":\"Integrate with Vercel\",\"href\":\"/docs/integrations/create-integration\"},{\"id\":\"9871a81b\",\"trail\":[\"6091d15a\"],\"children\":[{\"id\":\"e6296ac1\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Agility CMS\",\"href\":\"/docs/integrations/cms/agility-cms\",\"children\":\"$undefined\"},{\"id\":\"52cf49bb\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"ButterCMS\",\"href\":\"/docs/integrations/cms/butter-cms\",\"children\":\"$undefined\"},{\"id\":\"d67859e6\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Contentful\",\"href\":\"/docs/integrations/cms/contentful\",\"children\":\"$undefined\"},{\"id\":\"ed12b2a7\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"DatoCMS\",\"href\":\"/docs/integrations/cms/dato-cms\",\"children\":\"$undefined\"},{\"id\":\"a72bbcec\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Formspree\",\"href\":\"/docs/integrations/cms/formspree\",\"children\":\"$undefined\"},{\"id\":\"95f85ef3\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Makeswift\",\"href\":\"/docs/integrations/cms/makeswift\",\"children\":\"$undefined\"},{\"id\":\"187af098\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Sanity\",\"href\":\"/docs/integrations/cms/sanity\",\"children\":\"$undefined\"},{\"id\":\"253cd929\",\"trail\":[\"6091d15a\",\"9871a81b\"],\"name\":\"Sitecore\",\"href\":\"/docs/integrations/cms/sitecore\",\"children\":\"$undefined\"}],\"name\":\"CMS Integrations\",\"href\":\"/docs/integrations/cms\"},{\"id\":\"b8f5776a\",\"trail\":[\"6091d15a\"],\"children\":[{\"id\":\"85edd120\",\"trail\":[\"6091d15a\",\"b8f5776a\"],\"name\":\"BigCommerce\",\"href\":\"/docs/integrations/ecommerce/bigcommerce\",\"children\":\"$undefined\"},{\"id\":\"45d3b518\",\"trail\":[\"6091d15a\",\"b8f5776a\"],\"name\":\"Shopify\",\"href\":\"/docs/integrations/ecommerce/shopify\",\"children\":\"$undefined\"}],\"name\":\"Ecommerce Integrations\",\"href\":\"/docs/integrations/ecommerce\"},{\"id\":\"64b0c73b\",\"trail\":[\"6091d15a\"],\"name\":\"Sign in with Vercel\",\"href\":\"/docs/integrations/sign-in-with-vercel\",\"children\":\"$undefined\"},{\"id\":\"c453f9d4\",\"trail\":[\"6091d15a\"],\"children\":[{\"id\":\"fa247daf\",\"trail\":[\"6091d15a\",\"c453f9d4\"],\"name\":\"Kubernetes\",\"href\":\"/docs/integrations/external-platforms/kubernetes\",\"children\":\"$undefined\"}],\"name\":\"External Platforms\"}],\"name\":\"Integrations\",\"href\":\"/docs/integrations\",\"category\":\"Platform\"},{\"id\":\"51558182\",\"trail\":[],\"children\":[{\"id\":\"68167e78\",\"trail\":[\"51558182\"],\"name\":\"Fair use Guidelines\",\"href\":\"/docs/limits/fair-use-guidelines\",\"children\":\"$undefined\"}],\"name\":\"Limits\",\"href\":\"/docs/limits\",\"category\":\"Platform\"},{\"id\":\"109b189f\",\"trail\":[],\"children\":[{\"id\":\"0399cfb0\",\"trail\":[\"109b189f\"],\"name\":\"Configure Log Drains\",\"href\":\"/docs/log-drains/configure-log-drains\",\"children\":\"$undefined\"},{\"id\":\"49cae557\",\"trail\":[\"109b189f\"],\"name\":\"Log Drains Reference\",\"href\":\"/docs/log-drains/log-drains-reference\",\"children\":\"$undefined\"}],\"name\":\"Log Drains\",\"href\":\"/docs/log-drains\",\"category\":\"Observability\"},{\"id\":\"3060f466\",\"trail\":[],\"children\":[{\"id\":\"92df4fc0\",\"trail\":[\"3060f466\"],\"name\":\"Getting Started\",\"href\":\"/docs/edge-middleware/quickstart\",\"children\":\"$undefined\"},{\"id\":\"31860e85\",\"trail\":[\"3060f466\"],\"name\":\"Edge Runtime\",\"href\":\"/docs/edge-middleware/edge-runtime\",\"children\":\"$undefined\"},{\"id\":\"b46dc423\",\"trail\":[\"3060f466\"],\"name\":\"Edge Middleware API\",\"href\":\"/docs/edge-middleware/middleware-api\",\"children\":\"$undefined\"},{\"id\":\"6ce09998\",\"trail\":[\"3060f466\"],\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/edge-middleware/usage-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"265abd64\",\"trail\":[\"3060f466\"],\"name\":\"Limitations\",\"href\":\"/docs/edge-middleware/limitations\",\"children\":\"$undefined\"}],\"name\":\"Middleware\",\"href\":\"/docs/edge-middleware\",\"category\":\"Compute\"},{\"id\":\"f9614e7f\",\"trail\":[],\"children\":[{\"id\":\"0427e5d1\",\"trail\":[\"f9614e7f\"],\"name\":\"Getting Started\",\"href\":\"/docs/monitoring/quickstart\",\"children\":\"$undefined\"},{\"id\":\"f1244686\",\"trail\":[\"f9614e7f\"],\"name\":\"Monitoring Reference\",\"href\":\"/docs/monitoring/monitoring-reference\",\"children\":\"$undefined\"},{\"id\":\"94c6ec8e\",\"trail\":[\"f9614e7f\"],\"name\":\"Limits and Pricing\",\"href\":\"/docs/monitoring/limits-and-pricing\",\"children\":\"$undefined\"}],\"name\":\"Monitoring\",\"href\":\"/docs/monitoring\",\"category\":\"Observability\"},{\"id\":\"bce1a27c\",\"trail\":[],\"children\":[{\"id\":\"93219e43\",\"trail\":[\"bce1a27c\"],\"name\":\"Turborepo\",\"href\":\"/docs/monorepos/turborepo\",\"children\":\"$undefined\"},{\"id\":\"61e322d4\",\"trail\":[\"bce1a27c\"],\"name\":\"Remote Caching\",\"href\":\"/docs/monorepos/remote-caching\",\"children\":\"$undefined\"},{\"id\":\"d77a148c\",\"trail\":[\"bce1a27c\"],\"name\":\"Nx\",\"href\":\"/docs/monorepos/nx\",\"children\":\"$undefined\"},{\"id\":\"a8ae6d73\",\"trail\":[\"bce1a27c\"],\"name\":\"Monorepos FAQ\",\"href\":\"/docs/monorepos/monorepo-faq\",\"children\":\"$undefined\"}],\"name\":\"Monorepos\",\"href\":\"/docs/monorepos\",\"category\":\"Build \u0026 Deploy\"},{\"id\":\"e3f79975\",\"trail\":[],\"children\":[{\"id\":\"1d76f530\",\"trail\":[\"e3f79975\"],\"name\":\"Limits and Pricing\",\"href\":\"/docs/observability/limits-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"a5eadde0\",\"trail\":[\"e3f79975\"],\"name\":\"Logs\",\"href\":\"/docs/observability/logs\",\"children\":\"$undefined\"},{\"id\":\"d4d9f313\",\"trail\":[\"e3f79975\"],\"children\":[{\"id\":\"ee33dde3\",\"trail\":[\"e3f79975\",\"d4d9f313\"],\"name\":\"Query Reference\",\"href\":\"/docs/observability/query/query-reference\",\"children\":\"$undefined\"}],\"name\":\"Query\",\"href\":\"/docs/observability/query\",\"category\":\"Observability\"}],\"name\":\"Observability\",\"href\":\"/docs/observability\",\"category\":\"Observability\"},{\"id\":\"a7f62c2e\",\"trail\":[],\"children\":[{\"id\":\"d2454a60\",\"trail\":[\"a7f62c2e\"],\"name\":\"@vercel/og\",\"href\":\"/docs/og-image-generation/og-image-api\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"73a1b4f8\",\"trail\":[\"a7f62c2e\"],\"name\":\"Examples\",\"href\":\"/docs/og-image-generation/examples\",\"category\":\"Compute\",\"children\":\"$undefined\"}],\"name\":\"OG Image Generation\",\"href\":\"/docs/og-image-generation\",\"category\":\"Compute\"},{\"id\":\"1fea78df\",\"trail\":[],\"children\":[{\"id\":\"751a41e9\",\"trail\":[\"1fea78df\"],\"name\":\"AWS\",\"href\":\"/docs/oidc/aws\",\"children\":\"$undefined\"},{\"id\":\"23d00f23\",\"trail\":[\"1fea78df\"],\"name\":\"Azure\",\"href\":\"/docs/oidc/azure\",\"children\":\"$undefined\"},{\"id\":\"679ed426\",\"trail\":[\"1fea78df\"],\"name\":\"Connect your API\",\"href\":\"/docs/oidc/api\",\"children\":\"$undefined\"},{\"id\":\"6526ce65\",\"trail\":[\"1fea78df\"],\"name\":\"Google Cloud Platform\",\"href\":\"/docs/oidc/gcp\",\"children\":\"$undefined\"},{\"id\":\"4dd0ccc7\",\"trail\":[\"1fea78df\"],\"name\":\"OIDC Reference\",\"href\":\"/docs/oidc/reference\",\"children\":\"$undefined\"}],\"name\":\"OIDC\",\"href\":\"/docs/oidc\",\"category\":\"Security\"},{\"id\":\"3f7af769\",\"trail\":[],\"name\":\"OpenTelemetry\",\"href\":\"/docs/otel\",\"category\":\"Observability\",\"children\":\"$undefined\"},{\"id\":\"5a4bce0e\",\"trail\":[],\"name\":\"Package Managers\",\"href\":\"/docs/package-managers\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"35d42025\",\"trail\":[],\"children\":[{\"id\":\"2343ddd7\",\"trail\":[\"35d42025\"],\"name\":\"Hobby Plan\",\"href\":\"/docs/plans/hobby\",\"children\":\"$undefined\"},{\"id\":\"076a34c1\",\"trail\":[\"35d42025\"],\"children\":[{\"id\":\"4a5f6735\",\"trail\":[\"35d42025\",\"076a34c1\"],\"name\":\"Pro Plan Trial\",\"href\":\"/docs/plans/pro/trials\",\"children\":\"$undefined\"},{\"id\":\"5729aa57\",\"trail\":[\"35d42025\",\"076a34c1\"],\"name\":\"Billing FAQ\",\"href\":\"/docs/plans/pro/billing\",\"children\":\"$undefined\"}],\"name\":\"Pro Plan\",\"href\":\"/docs/plans/pro\"},{\"id\":\"3063b618\",\"trail\":[\"35d42025\"],\"children\":[{\"id\":\"04187941\",\"trail\":[\"35d42025\",\"3063b618\"],\"name\":\"Billing FAQ\",\"href\":\"/docs/plans/enterprise/billing\",\"children\":\"$undefined\"}],\"name\":\"Enterprise Plan\",\"href\":\"/docs/plans/enterprise\"}],\"name\":\"Plans\",\"href\":\"/docs/plans\",\"category\":\"Pricing\"},{\"id\":\"200f2482\",\"trail\":[],\"name\":\"Postgres\",\"href\":\"/docs/postgres\",\"category\":\"Storage\",\"children\":\"$undefined\"},{\"id\":\"e9e0a7ea\",\"trail\":[],\"children\":[{\"id\":\"5cacd2bc\",\"trail\":[\"e9e0a7ea\"],\"children\":[{\"id\":\"04d8b042\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Cape Town, South Africa\",\"href\":\"/docs/pricing/regional-pricing/cpt1\",\"children\":\"$undefined\"},{\"id\":\"8a899622\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Cleveland, USA\",\"href\":\"/docs/pricing/regional-pricing/cle1\",\"children\":\"$undefined\"},{\"id\":\"e33ba45d\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Dublin, Ireland\",\"href\":\"/docs/pricing/regional-pricing/dub1\",\"children\":\"$undefined\"},{\"id\":\"6b46b39d\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Frankfurt, Germany\",\"href\":\"/docs/pricing/regional-pricing/fra1\",\"children\":\"$undefined\"},{\"id\":\"be027b41\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Hong Kong\",\"href\":\"/docs/pricing/regional-pricing/hkg1\",\"children\":\"$undefined\"},{\"id\":\"14d16997\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"London, UK\",\"href\":\"/docs/pricing/regional-pricing/lhr1\",\"children\":\"$undefined\"},{\"id\":\"f2afea53\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Mumbai, India\",\"href\":\"/docs/pricing/regional-pricing/bom1\",\"children\":\"$undefined\"},{\"id\":\"e7178e6f\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Osaka, Japan\",\"href\":\"/docs/pricing/regional-pricing/kix1\",\"children\":\"$undefined\"},{\"id\":\"f21c561c\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Paris, France\",\"href\":\"/docs/pricing/regional-pricing/cdg1\",\"children\":\"$undefined\"},{\"id\":\"7d3fc291\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Portland, USA\",\"href\":\"/docs/pricing/regional-pricing/pdx1\",\"children\":\"$undefined\"},{\"id\":\"b7624241\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"San Francisco, USA\",\"href\":\"/docs/pricing/regional-pricing/sfo1\",\"children\":\"$undefined\"},{\"id\":\"f1ea717d\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"São Paulo, Brazil\",\"href\":\"/docs/pricing/regional-pricing/gru1\",\"children\":\"$undefined\"},{\"id\":\"2a3ace94\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Seoul, South Korea\",\"href\":\"/docs/pricing/regional-pricing/icn1\",\"children\":\"$undefined\"},{\"id\":\"57a31943\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Singapore\",\"href\":\"/docs/pricing/regional-pricing/sin1\",\"children\":\"$undefined\"},{\"id\":\"1ce92aa8\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Stockholm, Sweden\",\"href\":\"/docs/pricing/regional-pricing/arn1\",\"children\":\"$undefined\"},{\"id\":\"87024f44\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Sydney, Australia\",\"href\":\"/docs/pricing/regional-pricing/syd1\",\"children\":\"$undefined\"},{\"id\":\"94d5e36f\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Tokyo, Japan\",\"href\":\"/docs/pricing/regional-pricing/hnd1\",\"children\":\"$undefined\"},{\"id\":\"bc90532c\",\"trail\":[\"e9e0a7ea\",\"5cacd2bc\"],\"name\":\"Washington, D.C. USA\",\"href\":\"/docs/pricing/regional-pricing/iad1\",\"children\":\"$undefined\"}],\"name\":\"Regional Pricing\",\"href\":\"/docs/pricing/regional-pricing\"},{\"id\":\"405310b9\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Manage and Optimize Usage\",\"href\":\"/docs/pricing/manage-and-optimize-usage\",\"children\":\"$undefined\"},{\"id\":\"6bdfc168\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Calculating Usage of Resources\",\"href\":\"/docs/pricing/how-does-vercel-calculate-usage-of-resources\",\"children\":\"$undefined\"},{\"id\":\"71e2e604\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Billing \u0026 Invoices\",\"href\":\"/docs/pricing/understanding-my-invoice\",\"children\":\"$undefined\"},{\"id\":\"1115fc00\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Legacy Metrics\",\"href\":\"/docs/pricing/legacy\",\"children\":\"$undefined\"},{\"id\":\"ef69d495\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Observability\",\"href\":\"/docs/pricing/observability\",\"children\":\"$undefined\"},{\"id\":\"2ff13f04\",\"trail\":[\"e9e0a7ea\"],\"name\":\"Remote Cache Artifacts\",\"href\":\"/docs/pricing/artifacts\",\"children\":\"$undefined\"}],\"name\":\"Pricing\",\"href\":\"/docs/pricing\",\"category\":\"Pricing\"},{\"id\":\"62f62a51\",\"trail\":[],\"name\":\"Production Checklist\",\"href\":\"/docs/production-checklist\",\"topLevel\":3,\"children\":\"$undefined\"},{\"id\":\"38711634\",\"trail\":[],\"name\":\"Protected Git Scopes\",\"href\":\"/docs/protected-git-scopes\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"0d5056f4\",\"trail\":[],\"children\":[{\"id\":\"bd89d676\",\"trail\":[\"0d5056f4\"],\"children\":[{\"id\":\"d074b601\",\"trail\":[\"0d5056f4\",\"bd89d676\"],\"name\":\"Project Level Roles\",\"href\":\"/docs/rbac/access-roles/project-level-roles\",\"children\":\"$undefined\"},{\"id\":\"be212242\",\"trail\":[\"0d5056f4\",\"bd89d676\"],\"name\":\"Team Level Roles\",\"href\":\"/docs/rbac/access-roles/team-level-roles\",\"children\":\"$undefined\"}],\"name\":\"Access Roles\",\"href\":\"/docs/rbac/access-roles\"},{\"id\":\"7c5dc094\",\"trail\":[\"0d5056f4\"],\"name\":\"Access Groups\",\"href\":\"/docs/rbac/access-groups\",\"children\":\"$undefined\"},{\"id\":\"b2966af9\",\"trail\":[\"0d5056f4\"],\"name\":\"Managing Team Members\",\"href\":\"/docs/rbac/managing-team-members\",\"children\":\"$undefined\"}],\"name\":\"RBAC\",\"href\":\"/docs/rbac\",\"category\":\"Security\"},{\"id\":\"745f8047\",\"trail\":[],\"name\":\"Redirects\",\"href\":\"/docs/redirects\",\"category\":\"CDN\",\"children\":\"$undefined\"},{\"id\":\"8e39c4cb\",\"trail\":[],\"name\":\"Redis\",\"href\":\"/docs/redis\",\"category\":\"Storage\",\"children\":\"$undefined\"},{\"id\":\"a7fa8bf1\",\"trail\":[],\"children\":[{\"id\":\"b07b978d\",\"trail\":[\"a7fa8bf1\"],\"name\":\"Building Integrations with Vercel REST API\",\"href\":\"/docs/rest-api/vercel-api-integrations\",\"children\":\"$undefined\"},{\"id\":\"d7e444e5\",\"trail\":[\"a7fa8bf1\"],\"name\":\"REST API Endpoints\",\"href\":\"/docs/rest-api/endpoints\",\"children\":\"$undefined\"},{\"id\":\"84e3d6fb\",\"trail\":[\"a7fa8bf1\"],\"name\":\"REST API Errors\",\"href\":\"/docs/rest-api/errors\",\"children\":\"$undefined\"},{\"id\":\"89a6fc38\",\"trail\":[\"a7fa8bf1\"],\"name\":\"REST API Interfaces\",\"href\":\"/docs/rest-api/interfaces\",\"children\":\"$undefined\"}],\"name\":\"REST API\",\"href\":\"/docs/rest-api\",\"category\":\"Platform\"},{\"id\":\"47017093\",\"trail\":[],\"name\":\"Rewrites\",\"href\":\"/docs/rewrites\",\"category\":\"CDN\",\"children\":\"$undefined\"},{\"id\":\"2006b6a7\",\"trail\":[],\"name\":\"Runtime Logs\",\"href\":\"/docs/runtime-logs\",\"category\":\"Observability\",\"children\":\"$undefined\"},{\"id\":\"09ac2d26\",\"trail\":[],\"name\":\"SAML SSO\",\"href\":\"/docs/saml\",\"category\":\"Access\",\"children\":\"$undefined\"},{\"id\":\"67efb7f6\",\"trail\":[],\"name\":\"Secure Compute\",\"href\":\"/docs/secure-compute\",\"category\":\"Security\",\"children\":\"$undefined\"},{\"id\":\"aafb7f48\",\"trail\":[],\"name\":\"Skew Protection\",\"href\":\"/docs/skew-protection\",\"category\":\"Build \u0026 Deploy\",\"children\":\"$undefined\"},{\"id\":\"009404d1\",\"trail\":[],\"children\":[{\"id\":\"bf560213\",\"trail\":[\"009404d1\"],\"name\":\"Getting Started\",\"href\":\"/docs/speed-insights/quickstart\",\"children\":\"$undefined\"},{\"id\":\"c09893ae\",\"trail\":[\"009404d1\"],\"name\":\"Using Speed Insights\",\"href\":\"/docs/speed-insights/using-speed-insights\",\"children\":\"$undefined\"},{\"id\":\"1c5da482\",\"trail\":[\"009404d1\"],\"name\":\"Metrics\",\"href\":\"/docs/speed-insights/metrics\",\"children\":\"$undefined\"},{\"id\":\"b8f4e90e\",\"trail\":[\"009404d1\"],\"name\":\"Privacy\",\"href\":\"/docs/speed-insights/privacy-policy\",\"children\":\"$undefined\"},{\"id\":\"1a484c67\",\"trail\":[\"009404d1\"],\"name\":\"@vercel/speed-insights\",\"href\":\"/docs/speed-insights/package\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"d521db98\",\"trail\":[\"009404d1\"],\"name\":\"Limits and Pricing\",\"href\":\"/docs/speed-insights/limits-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"6ae358b5\",\"trail\":[\"009404d1\"],\"name\":\"Troubleshooting\",\"href\":\"/docs/speed-insights/troubleshooting\",\"children\":\"$undefined\"},{\"id\":\"574bf574\",\"trail\":[\"009404d1\"],\"name\":\"Migrating from Legacy\",\"href\":\"/docs/speed-insights/migrating-from-legacy\",\"children\":\"$undefined\"}],\"name\":\"Speed Insights\",\"href\":\"/docs/speed-insights\",\"category\":\"Observability\"},{\"id\":\"c979f54d\",\"trail\":[],\"name\":\"Spend Management\",\"href\":\"/docs/spend-management\",\"category\":\"Pricing\",\"children\":\"$undefined\"},{\"id\":\"c2efe0cb\",\"trail\":[],\"children\":[{\"id\":\"f6a53638\",\"trail\":[\"c2efe0cb\"],\"name\":\"Next.js\",\"href\":\"/docs/frameworks/nextjs\",\"children\":\"$undefined\"},{\"id\":\"eff4f7dd\",\"trail\":[\"c2efe0cb\"],\"name\":\"SvelteKit\",\"href\":\"/docs/frameworks/sveltekit\",\"children\":\"$undefined\"},{\"id\":\"ba63e0ed\",\"trail\":[\"c2efe0cb\"],\"name\":\"Astro\",\"href\":\"/docs/frameworks/astro\",\"children\":\"$undefined\"},{\"id\":\"8b9afb68\",\"trail\":[\"c2efe0cb\"],\"name\":\"Nuxt\",\"href\":\"/docs/frameworks/nuxt\",\"children\":\"$undefined\"},{\"id\":\"0be92d59\",\"trail\":[\"c2efe0cb\"],\"name\":\"Vite\",\"href\":\"/docs/frameworks/vite\",\"children\":\"$undefined\"},{\"id\":\"b12b0321\",\"trail\":[\"c2efe0cb\"],\"name\":\"React Router\",\"href\":\"/docs/frameworks/react-router\",\"children\":\"$undefined\"},{\"id\":\"a0f9c014\",\"trail\":[\"c2efe0cb\"],\"name\":\"Remix\",\"href\":\"/docs/frameworks/remix\",\"children\":\"$undefined\"},{\"id\":\"afd05d9a\",\"trail\":[\"c2efe0cb\"],\"name\":\"Gatsby\",\"href\":\"/docs/frameworks/gatsby\",\"children\":\"$undefined\"},{\"id\":\"17a699fb\",\"trail\":[\"c2efe0cb\"],\"name\":\"Create React App\",\"href\":\"/docs/frameworks/create-react-app\",\"children\":\"$undefined\"},{\"id\":\"7a47d164\",\"trail\":[\"c2efe0cb\"],\"name\":\"All Frameworks\",\"href\":\"/docs/frameworks/more-frameworks\",\"children\":\"$undefined\"}],\"name\":\"Supported Frameworks\",\"href\":\"/docs/frameworks\",\"topLevel\":1},{\"id\":\"fcea4c56\",\"trail\":[],\"children\":[{\"id\":\"01cdbe2d\",\"trail\":[\"fcea4c56\"],\"children\":[{\"id\":\"13465fb6\",\"trail\":[\"fcea4c56\",\"01cdbe2d\"],\"name\":\"Add to Localhost\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost/add-to-localhost\",\"children\":\"$undefined\"},{\"id\":\"cb4ba607\",\"trail\":[\"fcea4c56\",\"01cdbe2d\"],\"name\":\"Add to Production\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost/add-to-production\",\"children\":\"$undefined\"}],\"name\":\"Add to Environments\",\"href\":\"/docs/vercel-toolbar/in-production-and-localhost\"},{\"id\":\"b5a3267c\",\"trail\":[\"fcea4c56\"],\"name\":\"Managing Toolbar\",\"href\":\"/docs/vercel-toolbar/managing-toolbar\",\"children\":\"$undefined\"},{\"id\":\"ce6e00ae\",\"trail\":[\"fcea4c56\"],\"name\":\"Browser Extensions\",\"href\":\"/docs/vercel-toolbar/browser-extension\",\"children\":\"$undefined\"},{\"id\":\"fc0f0194\",\"trail\":[\"fcea4c56\"],\"name\":\"Accessibility Audit Tool\",\"href\":\"/docs/vercel-toolbar/accessibility-audit-tool\",\"children\":\"$undefined\"},{\"id\":\"2ecd31fe\",\"trail\":[\"fcea4c56\"],\"name\":\"Interaction Timing Tool\",\"href\":\"/docs/vercel-toolbar/interaction-timing-tool\",\"children\":\"$undefined\"},{\"id\":\"470e54bb\",\"trail\":[\"fcea4c56\"],\"name\":\"Layout Shift Tool\",\"href\":\"/docs/vercel-toolbar/layout-shift-tool\",\"children\":\"$undefined\"}],\"name\":\"Toolbar\",\"href\":\"/docs/vercel-toolbar\",\"category\":\"Collaboration\"},{\"id\":\"a069b265\",\"trail\":[],\"name\":\"Two-factor (2FA)\",\"href\":\"/docs/two-factor-authentication\",\"category\":\"Access\",\"children\":\"$undefined\"},{\"id\":\"05fbdfc3\",\"trail\":[],\"children\":[{\"id\":\"d217592b\",\"trail\":[\"05fbdfc3\"],\"name\":\"SDK Reference\",\"href\":\"/docs/sdk/reference\",\"children\":\"$undefined\"}],\"name\":\"Vercel SDK\",\"href\":\"/docs/sdk\",\"category\":\"Platform\"},{\"id\":\"c359967b\",\"trail\":[],\"children\":[{\"id\":\"5465e8d6\",\"trail\":[\"c359967b\"],\"name\":\"Custom Rules\",\"href\":\"/docs/vercel-waf/custom-rules\",\"children\":\"$undefined\"},{\"id\":\"d306734b\",\"trail\":[\"c359967b\"],\"name\":\"Rate Limiting\",\"href\":\"/docs/vercel-waf/rate-limiting\",\"children\":\"$undefined\"},{\"id\":\"e341fb15\",\"trail\":[\"c359967b\"],\"name\":\"System Bypass Rules\",\"href\":\"/docs/vercel-waf/system-bypass-rules\",\"children\":\"$undefined\"},{\"id\":\"01563c74\",\"trail\":[\"c359967b\"],\"name\":\"Rule Configuration\",\"href\":\"/docs/vercel-waf/rule-configuration\",\"children\":\"$undefined\"},{\"id\":\"f3efba68\",\"trail\":[\"c359967b\"],\"name\":\"Rate Limiting SDK\",\"href\":\"/docs/vercel-waf/rate-limiting-sdk\",\"children\":\"$undefined\"},{\"id\":\"b54c3f74\",\"trail\":[\"c359967b\"],\"name\":\"IP Blocking\",\"href\":\"/docs/vercel-waf/ip-blocking\",\"children\":\"$undefined\"},{\"id\":\"72e4a305\",\"trail\":[\"c359967b\"],\"name\":\"Managed Rulesets\",\"href\":\"/docs/vercel-waf/managed-rulesets\",\"children\":\"$undefined\"},{\"id\":\"c68570cf\",\"trail\":[\"c359967b\"],\"name\":\"Examples\",\"href\":\"/docs/vercel-waf/examples\",\"children\":\"$undefined\"},{\"id\":\"39693584\",\"trail\":[\"c359967b\"],\"name\":\"Usage \u0026 Pricing\",\"href\":\"/docs/vercel-waf/usage-and-pricing\",\"children\":\"$undefined\"}],\"name\":\"WAF\",\"href\":\"/docs/vercel-waf\",\"category\":\"Security\"},{\"id\":\"0655c809\",\"trail\":[],\"children\":[{\"id\":\"9a610175\",\"trail\":[\"0655c809\"],\"name\":\"Getting Started\",\"href\":\"/docs/analytics/quickstart\",\"children\":\"$undefined\"},{\"id\":\"ae89efff\",\"trail\":[\"0655c809\"],\"name\":\"Using Web Analytics\",\"href\":\"/docs/analytics/using-web-analytics\",\"children\":\"$undefined\"},{\"id\":\"10c5e51f\",\"trail\":[\"0655c809\"],\"name\":\"Filtering\",\"href\":\"/docs/analytics/filtering\",\"children\":\"$undefined\"},{\"id\":\"51e0f406\",\"trail\":[\"0655c809\"],\"name\":\"Custom Events\",\"href\":\"/docs/analytics/custom-events\",\"children\":\"$undefined\"},{\"id\":\"184104c1\",\"trail\":[\"0655c809\"],\"name\":\"Redacting Sensitive Data\",\"href\":\"/docs/analytics/redacting-sensitive-data\",\"children\":\"$undefined\"},{\"id\":\"227a8d33\",\"trail\":[\"0655c809\"],\"name\":\"Privacy\",\"href\":\"/docs/analytics/privacy-policy\",\"children\":\"$undefined\"},{\"id\":\"d19db563\",\"trail\":[\"0655c809\"],\"name\":\"@vercel/analytics\",\"href\":\"/docs/analytics/package\",\"isCode\":\"true\",\"children\":\"$undefined\"},{\"id\":\"56dc5f03\",\"trail\":[\"0655c809\"],\"name\":\"Pricing\",\"href\":\"/docs/analytics/limits-and-pricing\",\"children\":\"$undefined\"},{\"id\":\"53e94353\",\"trail\":[\"0655c809\"],\"name\":\"Troubleshooting\",\"href\":\"/docs/analytics/troubleshooting\",\"children\":\"$undefined\"}],\"name\":\"Web Analytics\",\"href\":\"/docs/analytics\",\"category\":\"Observability\"},{\"id\":\"1a8048fe\",\"trail\":[],\"children\":[{\"id\":\"36d70a33\",\"trail\":[\"1a8048fe\"],\"name\":\"Webhooks API Reference\",\"href\":\"/docs/webhooks/webhooks-api\",\"children\":\"$undefined\"}],\"name\":\"Webhooks\",\"href\":\"/docs/webhooks\",\"category\":\"Build \u0026 Deploy\"},{\"name\":\"Guides\",\"href\":\"/guides\",\"topLevel\":4,\"id\":\"8fc2fd77\",\"children\":[]}],\"name\":\"Vercel Documentation\",\"href\":\"/docs\",\"id\":\"0747d397\"},\"children\":[[\"$\",\"$L30\",null,{}],[\"$\",\"main\",null,{\"className\":\"layout_main__N5tYt\",\"children\":[\"$\",\"div\",null,{\"className\":\"layout_wrapper__IGhij\",\"data-soft-nav-target\":\"1\",\"children\":[[\"$\",\"$L31\",null,{}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}],[\"$\",\"$L32\",null,{\"className\":\"border-0\",\"isMarketingPage\":true}],[\"$\",\"$29\",null,{\"children\":[\"$\",\"$L33\",null,{}]}]]}],[\"$\",\"$L34\",null,{\"rootpath\":\"/docs\"}]]\n"])</script><script>self.__next_f.push([1,"2c:null\n"])</script><script>self.__next_f.push([1,"2a:[\"$\",\"script\",null,{\"type\":\"application/json\",\"data-flag-values\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"\\\"eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..RJWZbGFcVqS6SaB_.Pbr3T9YYIcgfLGfh-PDLqNxr5wadv_5VJWEABh-HegZm8sO0sqBbyEZUA6CFGSJIpHwXxJ-IYG1lKfPKcsHVDdorBpzi-nYgvlr7l4XK5QKbF2vcLs68Nw.xcKgHUtFmuW84PARwU93Ng\\\"\"}}]\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}],[\"$\",\"meta\",\"3\",{\"name\":\"color-scheme\",\"content\":\"dark light\"}]]\n10:null\n"])</script><script>self.__next_f.push([1,"11:null\n15:[[\"$\",\"meta\",\"0\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"1\",{\"name\":\"googlebot\",\"content\":\"index, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"trace-attributes\",\"content\":\"{\\\"next.appdir\\\":true}\"}],[\"$\",\"link\",\"3\",{\"rel\":\"shortcut icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/favicon.ico\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/32x32.png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-180x180.png\"}]]\n"])</script><script>self.__next_f.push([1,"35:I[66053,[\"43527\",\"static/chunks/43527-87245ffb8efb4593.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"31807\",\"static/chunks/31807-767fb424a3cd6173.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"19980\",\"static/chunks/19980-31c245f65af9772f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"35452\",\"static/chunks/35452-3bed5a7089685650.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33758\",\"static/chunks/33758-6d6d93a81bfe427b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"83184\",\"static/chunks/83184-481d235b17db205c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"89374\",\"static/chunks/89374-d5454216b4f436bc.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"2607\",\"static/chunks/2607-26229d7ed53beee4.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"5141\",\"static/chunks/5141-9a67c12c8018c69b.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"7495\",\"static/chunks/7495-904daa256870151c.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"97288\",\"static/chunks/97288-d1cb5a5afc12ec0e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"30829\",\"static/chunks/30829-576b7becfd8d81b9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"4320\",\"static/chunks/4320-02e0e15b973dd14e.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"84522\",\"static/chunks/84522-bd2a2e3a7922417f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"33105\",\"static/chunks/33105-e84a24ae7f4b01c9.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"62315\",\"static/chunks/62315-e275a6f8636ca3a7.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"81702\",\"static/chunks/81702-78314422d38fe67f.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"82491\",\"static/chunks/82491-97bed2f688be5c48.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"61190\",\"static/chunks/61190-19d82ebcf96b6946.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\",\"53749\",\"static/chunks/app/%5BrootFlagsCode%5D/docs/page-52253f821f554e4d.js?dpl=dpl_HGEpGuoYDDr67mwVWjGoALf6JPzG\"],\"NoTemplateOnlyTemplatesSection\"]\n9:[\"$\",\"$L35\",null,{\"filter\":[\"starter\"],\"frameworkFilter\":\"$undefined\",\"limit\":3,\"templates\":[{\"objectID\":\"7zzTfDiqij4la9ML7SvBpT\",\"queryID\":\"9d936c255551a85cc9db56faed9a6ab7\",\"name\":\"Next.js Boilerplate\",\"slug\":\"nextjs-boilerplate\",\"publis"])</script><script>self.__next_f.push([1,"her\":\"▲ Vercel\",\"thumbnail\":\"https://images.ctfassets.net/e5382hct74si/1aHobcZ8H6WY48u5CMXlOe/0f0efe6bd469985b692555fbcad1cc01/nextjs-template.png\",\"description\":\"Get started with Next.js and React in seconds.\",\"framework\":[\"Next.js\"],\"demoUrl\":\"https://nextjs-template.vercel.app/\"},{\"objectID\":\"6SLGOtMWNt163NKQZXyuPW\",\"queryID\":\"9d936c255551a85cc9db56faed9a6ab7\",\"name\":\"Nuxt.js 3 Boilerplate\",\"slug\":\"nuxtjs-boilerplate\",\"publisher\":\"▲ Vercel\",\"thumbnail\":\"https://images.ctfassets.net/e5382hct74si/leiZ1j6r8MPRgnugYyWf3/01c94495dd082a948af73e871347c93e/CleanShot_2022-11-18_at_13.58.42_2x.png\",\"description\":\"A Nuxt.js 3 app, bootstrapped with create-nuxt-app.\",\"framework\":[\"Nuxt\"],\"demoUrl\":\"https://nuxtjs-template.vercel.app/\"},{\"objectID\":\"4FKzTlDxNpE9GwKCx5RY4j\",\"queryID\":\"9d936c255551a85cc9db56faed9a6ab7\",\"name\":\"SvelteKit Boilerplate\",\"slug\":\"sveltekit-boilerplate\",\"publisher\":\"▲ Vercel\",\"thumbnail\":\"https://images.ctfassets.net/e5382hct74si/5WIYQtnSEfZKYFB9kvsR0w/974bee31f87aa376a54dccdb0713629d/CleanShot_2022-05-23_at_22.13.20_2x.png\",\"description\":\"A SvelteKit app including nested routes, layouts, and page endpoints.\",\"framework\":[\"Svelte\"],\"demoUrl\":\"https://sveltekit-1-template.vercel.app/\"}],\"title\":\"Deploy a Template\"}]\n"])</script></body></html>