CINXE.COM
Blog - Vercel
<!DOCTYPE html><html class="__variable_b36163 __variable_49252a" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content"/><link rel="preload" href="/mktng/_next/static/media/569ce4b8f30dc480-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/mktng/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/mktng/_next/static/media/vercel-logotype-light.700a8d26.svg"/><link rel="preload" as="image" href="/mktng/_next/static/media/vercel-logotype-dark.e8c0a742.svg"/><link rel="preload" as="image" href="/api/www/avatar?u=mknichel&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=danfein&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=brianemerick-vercelcom&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=jared&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=jueungraceyun&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=aryamank&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=danmfox&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=lgrammel&s=40"/><link rel="stylesheet" href="/mktng/_next/static/css/eb29d44192845090.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/1dd6c798e17a221c.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/b8495a7e29df64bd.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/ff5c81bc7d1218a6.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/018276901f67cffc.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/d969c48a33096cd1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/b29d32ce6ecf5773.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/4391c3778a153b7e.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/bbbbb6639a20be2f.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/db3dfc7214a1da9a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/2d50cde0ea5ca443.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/17a72608604c56e1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/992ee4ccaa0ffe90.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/2dd6cbe6e06e2936.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/bb8ab853799c96c1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/2168b69293d27eea.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/44db2da12ad28cd9.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="stylesheet" href="/mktng/_next/static/css/98343cb62b517dca.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/mktng/_next/static/chunks/webpack-63002c9428def2bd.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG"/><script src="/mktng/_next/static/chunks/38483837-e12059d2b736466c.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5381-b621c000814318ca.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/main-app-69f9ae6fa077b658.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/6762-c3b193eb9ad4e6fc.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5667-a1158163f581861a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5417-2148b2486e2fcc64.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/9831-642be31adc7bdfd0.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/6329-efe5c908ba5a87c9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/8868-2bd7113852ad65a7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/496-4048cba3598bd8aa.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/7934-5696252a25d15c70.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/(default)/(blog)/(root)/blog/page-5123f5b6785cfd11.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1432-fd0cde7a188d39f1.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/9983-14bed2d32001a072.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1970-9aac2ba5c6d3fb87.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/5142-56063046cea785f2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/3314-4f6a9e87b7513851.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1710-097f063cbd982e09.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/618-016a9e6296fbc6a5.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1833-a7b1a8f62a48e5b2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/(default)/layout-2ce2ffa8091f316e.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/2743-e27c9ea867a3ccb2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/(default)/(blog)/not-found-aa0ddbca7c163085.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/(default)/(blog)/layout-06b4ef5260dc0c63.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/1278-f74aae7457da1745.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/2750-c821db01db56c1a8.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script src="/mktng/_next/static/chunks/app/(default)/(blog)/(root)/layout-83204d2ed9adbb2c.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><link rel="preload" as="image" href="/api/www/avatar?u=nicoalbanese&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=jennshumann&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=cramforce&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=pstaelin&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=vercelina&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=mcocirio&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=gudmundur&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=leerob&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=delbaoliveira&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=perilanglois1&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=alicemoore&s=40"/><link rel="preload" as="image" href="/api/www/avatar?u=rich-harris&s=40"/><meta name="next-size-adjust"/><meta name="theme-color" content="#0a0a0a"/><meta name="color-scheme" content="dark light"/><title>Blog - Vercel</title><meta name="description" content="Blog posts from the Vercel team and community. Discover the latest in web development."/><link rel="manifest" href="/site.webmanifest"/><meta name="robots" content="index, max-image-preview:large"/><meta name="vercel-flags-api-endpoint" content="/mktng/.well-known/vercel/flags"/><meta name="vercel-flags-api-endpoint" content="/vercel-site/.well-known/vercel/flags"/><link rel="canonical" href="https://vercel.com/blog"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Vercel"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta property="og:title" content="Blog - Vercel"/><meta property="og:description" content="Blog posts from the Vercel team and community. Discover the latest in web development."/><meta property="og:url" content="https://vercel.com/blog"/><meta property="og:site_name" content="Vercel"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://assets.vercel.com/image/upload/q_auto/front/blog/og/Vercel_Blog_OG.png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Blog - Vercel"/><meta name="twitter:description" content="Blog posts from the Vercel team and community. Discover the latest in web development."/><meta name="twitter:image" content="https://assets.vercel.com/image/upload/q_auto/front/blog/og/Vercel_Blog_OG.png"/><link rel="icon shortcut" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/favicon.ico" type="image/x-icon"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-57x57.png" sizes="57x57"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-60x60.png" sizes="60x60"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-72x72.png" sizes="72x72"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-76x76.png" sizes="76x76"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-114x114.png" sizes="114x114"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-120x120.png" sizes="120x120"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-144x144.png" sizes="144x144"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-152x152.png" sizes="152x152"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-180x180.png" sizes="180x180"/><link rel="apple-touch-icon" href="https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-256x256.png" sizes="256x256"/><script src="/mktng/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" noModule=""></script></head><body class="tailwind tailwind-no-preflight"><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light-theme','dark-theme');var e=localStorage.getItem('zeit-theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark-theme')}else{d.style.colorScheme = 'light';c.add('light-theme')}}else if(e){var x={"light":"light-theme","dark":"dark-theme"};c.add(x[e]|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><!--$--><!--/$--><div class="header_wrapper__obkxf header_sticky__ROwbE header_canGrow__Q98KZ header_transparentUntilScroll__EQY1i" data-navigation-header="" data-scrolled="false" id="header-wrapper"><header class="header_header__0ZBDm"><div class="header_left__QbDFv"><a aria-controls="menu-:Rarlklb:" aria-expanded="false" data-testid="header/navbar/logo" id="menu-button-:RarlklbH1:" style="popper:[object Object]" data-zone="same" class="link_link__hbWKh logo_logoLink__6VCj0 logo_logo__By_n5" href="/home"><img alt="vercel-logotype Logo" loading="eager" width="97.28125" height="22" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/mktng/_next/static/media/vercel-logotype-light.700a8d26.svg"/><img alt="vercel-logotype Logo" loading="eager" width="97.28125" height="22" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/mktng/_next/static/media/vercel-logotype-dark.e8c0a742.svg"/></a><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><div class="header_main__5dMOP"><nav aria-label="Main" data-orientation="horizontal" dir="ltr" class="navigation-menu_root__HT1ea" style="--indicator-height:10px;--arrow-offset:-10px;--content-width:-16px;--left-offset:calc(-1 * var(--gap-between-logo-and-nav) - 98px)"><div aria-hidden="true" class="navigation-menu_tabsHighlight__4PsZm"></div><div style="position:relative"><ul data-orientation="horizontal" class="navigation-menu_list__1vwjh" dir="ltr"><li><button id="radix-:Rirlklb:-trigger-features" data-state="closed" aria-expanded="false" aria-controls="radix-:Rirlklb:-content-features" class="navigation-menu_trigger__AmZ48" value="features" data-active="closed" data-radix-collection-item="">Products<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><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></button><div id="radix-:Rirlklb:-content-features" aria-labelledby="radix-:Rirlklb:-trigger-features" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="header-dx">DX Platform</h5><ul aria-describedby="header-dx" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="Previews" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/products/previews"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 2.5H1.5V5.005H14.5V2.5ZM14.5 6.255H6.245V13.5H13.5C14.0523 13.5 14.5 13.0523 14.5 12.5V6.255ZM4.995 6.255H1.5V12.5C1.5 13.0523 1.94772 13.5 2.5 13.5H4.995V6.255ZM1.5 1H0V2.5V12.5C0 13.8807 1.11929 15 2.5 15H13.5C14.8807 15 16 13.8807 16 12.5V2.5V1H14.5H1.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Previews</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Helping teams ship 6× faster</p></div></a></li><li><a data-hover-icon="false" data-feature="AI" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/ai"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M2.5 0.5V0H3.5V0.5C3.5 1.60457 4.39543 2.5 5.5 2.5H6V3V3.5H5.5C4.39543 3.5 3.5 4.39543 3.5 5.5V6H3H2.5V5.5C2.5 4.39543 1.60457 3.5 0.5 3.5H0V3V2.5H0.5C1.60457 2.5 2.5 1.60457 2.5 0.5Z" fill="currentColor"/> <path d="M14.5 4.5V5H13.5V4.5C13.5 3.94772 13.0523 3.5 12.5 3.5H12V3V2.5H12.5C13.0523 2.5 13.5 2.05228 13.5 1.5V1H14H14.5V1.5C14.5 2.05228 14.9477 2.5 15.5 2.5H16V3V3.5H15.5C14.9477 3.5 14.5 3.94772 14.5 4.5Z" fill="currentColor"/> <path d="M8.40706 4.92939L8.5 4H9.5L9.59294 4.92939C9.82973 7.29734 11.7027 9.17027 14.0706 9.40706L15 9.5V10.5L14.0706 10.5929C11.7027 10.8297 9.82973 12.7027 9.59294 15.0706L9.5 16H8.5L8.40706 15.0706C8.17027 12.7027 6.29734 10.8297 3.92939 10.5929L3 10.5V9.5L3.92939 9.40706C6.29734 9.17027 8.17027 7.29734 8.40706 4.92939Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Powering breakthroughs</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="header-managed-infrastructure">Managed Infrastructure</h5><ul aria-describedby="header-managed-infrastructure" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="Rendering" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/products/rendering"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Rendering</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Fast, scalable, and reliable</p></div></a></li><li><a data-hover-icon="false" data-feature="Observability" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/products/observability"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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.75 1V1.75V14.25V15H7.25V14.25V1.75V1H8.75ZM3.5 9V9.75V14.25V15H2V14.25V9.75V9H3.5ZM14 6.75V6H12.5V6.75V14.25V15H14V14.25V6.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Observability</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Trace every step</p></div></a></li><li><a data-hover-icon="false" data-feature="Security" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/security"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 4.057V9.52717C3.5 10.9221 4.27429 12.2018 5.50997 12.849L8 14.1533L10.49 12.849C11.7257 12.2018 12.5 10.9221 12.5 9.52717V4.057C12.3094 4.00405 12.1074 3.9513 11.8932 3.89539C11.746 3.85699 11.5932 3.81709 11.4344 3.7746C10.8476 3.61758 10.204 3.43066 9.61101 3.17017C9.02666 2.91351 8.44336 2.56529 8 2.05704C7.55664 2.56529 6.97334 2.91351 6.38899 3.17017C5.79596 3.43066 5.15243 3.61758 4.5656 3.7746C4.40682 3.81709 4.25396 3.85699 4.10684 3.89539C3.89262 3.9513 3.69055 4.00405 3.5 4.057ZM7.25 0C7.25 0.467199 7.10537 0.796772 6.87802 1.06132C6.6357 1.34329 6.26955 1.58432 5.78576 1.79681C5.30375 2.00853 4.75351 2.17155 4.17787 2.32558C4.04421 2.36134 3.90727 2.39707 3.76932 2.43305C3.33687 2.54586 2.89458 2.66124 2.51283 2.78849L2 2.95943V3.5V9.52717C2 11.4801 3.084 13.2716 4.81396 14.1778L7.65199 15.6644L8 15.8467L8.34801 15.6644L11.186 14.1778C12.916 13.2716 14 11.4801 14 9.52717V3.5V2.95943L13.4872 2.78849C13.1054 2.66124 12.6631 2.54586 12.2307 2.43305C12.0927 2.39707 11.9558 2.36134 11.8221 2.32558C11.2465 2.17155 10.6962 2.00853 10.2142 1.79681C9.73045 1.58432 9.3643 1.34329 9.12198 1.06132C8.89463 0.796772 8.75 0.467199 8.75 0H7.25Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Security</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Scale without compromising</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="header-open-source">Open Source</h5><ul aria-describedby="header-managed-infrastructure" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="true" data-feature="Next.js" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/frameworks/nextjs"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_53_108)"> <circle cx="8" cy="8" r="7.375" fill="black" stroke="var(--ds-gray-1000)" strokeWidth="1.25" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.63 11V5" stroke="url(#paint0_linear_53_108R5dqdirlklb)" strokeWidth="1.25" stroke-miterlimit="1.41421"/> <path fill-rule="evenodd" cliprule="evenodd" d="M5.995 5.00087V5H4.745V11H5.995V6.96798L12.3615 14.7076C12.712 14.4793 13.0434 14.2242 13.353 13.9453L5.99527 5.00065L5.995 5.00087Z" fill="url(#paint1_linear_53_108R5dqdirlklb)"/> </g> <defs> <linearGradient id="paint0_linear_53_108R5dqdirlklb" x1="11.13" y1="5" x2="11.13" y2="11" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="0.609375" stop-color="white" stop-opacity="0.57"/> <stop offset="0.796875" stop-color="white" stop-opacity="0"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <linearGradient id="paint1_linear_53_108R5dqdirlklb" x1="9.9375" y1="9.0625" x2="13.5574" y2="13.3992" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <clipPath id="clip0_53_108"> <rect width="16" height="16" fill="red"/> </clipPath> </defs></svg></div><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA navigation-menu_iconHover__D__VG" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_53_108)"> <circle cx="8" cy="8" r="7.375" fill="black" stroke="var(--ds-gray-1000)" strokeWidth="1.25" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.63 11V5" stroke="url(#paint0_linear_53_108R9dqdirlklb)" strokeWidth="1.25" stroke-miterlimit="1.41421"/> <path fill-rule="evenodd" cliprule="evenodd" d="M5.995 5.00087V5H4.745V11H5.995V6.96798L12.3615 14.7076C12.712 14.4793 13.0434 14.2242 13.353 13.9453L5.99527 5.00065L5.995 5.00087Z" fill="url(#paint1_linear_53_108R9dqdirlklb)"/> </g> <defs> <linearGradient id="paint0_linear_53_108R9dqdirlklb" x1="11.13" y1="5" x2="11.13" y2="11" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="0.609375" stop-color="white" stop-opacity="0.57"/> <stop offset="0.796875" stop-color="white" stop-opacity="0"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <linearGradient id="paint1_linear_53_108R9dqdirlklb" x1="9.9375" y1="9.0625" x2="13.5574" y2="13.3992" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <clipPath id="clip0_53_108"> <rect width="16" height="16" fill="red"/> </clipPath> </defs></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Next.js</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The native Next.js platform</p></div></a></li><li><a href="/solutions/turborepo" data-hover-icon="true" data-feature="Turborepo" data-radix-collection-item="" data-zone="vercel-site" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_872_3188)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 0V2C11.3137 2 14 4.68629 14 8C14 11.1453 11.5798 13.7254 8.5 13.9795V15.9846C12.6854 15.7265 16 12.2504 16 8C16 3.58172 12.4183 0 8 0ZM7.5 15.9846V13.9795C6.2188 13.8738 5.05174 13.3655 4.12558 12.5815L2.70769 13.9994C4.00133 15.1415 5.66717 15.8716 7.5 15.9846ZM2.00058 13.2923C0.755509 11.882 0 10.0292 0 8H2C2 9.47685 2.53358 10.8291 3.41847 11.8744L2.00058 13.2923Z" fill="url(#paint0_linear_872_3188)"/> <rect x="4.5" y="4.5" width="7" height="7" rx="3.5" stroke="var(--ds-gray-1000)" fill="transparent" stroke-width="2"/> </g> <defs> <linearGradient id="paint0_linear_872_3188" x1="8.68832" y1="1.98437" x2="1.79792" y2="8.82805" gradientUnits="userSpaceOnUse"> <stop stop-color="#0096FF"/> <stop offset="1" stop-color="#FF1E56"/> </linearGradient> <clipPath id="clip0_872_3188"> <rect width="16" height="16" fill="white"/> </clipPath> </defs></svg></div><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA navigation-menu_iconHover__D__VG" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_872_3188)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 0V2C11.3137 2 14 4.68629 14 8C14 11.1453 11.5798 13.7254 8.5 13.9795V15.9846C12.6854 15.7265 16 12.2504 16 8C16 3.58172 12.4183 0 8 0ZM7.5 15.9846V13.9795C6.2188 13.8738 5.05174 13.3655 4.12558 12.5815L2.70769 13.9994C4.00133 15.1415 5.66717 15.8716 7.5 15.9846ZM2.00058 13.2923C0.755509 11.882 0 10.0292 0 8H2C2 9.47685 2.53358 10.8291 3.41847 11.8744L2.00058 13.2923Z" fill="url(#paint0_linear_872_3188)"/> <rect x="4.5" y="4.5" width="7" height="7" rx="3.5" stroke="var(--ds-gray-1000)" fill="transparent" stroke-width="2"/> </g> <defs> <linearGradient id="paint0_linear_872_3188" x1="8.68832" y1="1.98437" x2="1.79792" y2="8.82805" gradientUnits="userSpaceOnUse"> <stop stop-color="#0096FF"/> <stop offset="1" stop-color="#FF1E56"/> </linearGradient> <clipPath id="clip0_872_3188"> <rect width="16" height="16" fill="white"/> </clipPath> </defs></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Turborepo</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Speed with Enterprise scale</p></div></a></li><li><a class="navigation-menu_menuSubLink__jde_U undefined" data-hover-icon="false" data-feature="AI SDK" href="https://sdk.vercel.ai/" data-radix-collection-item=""><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 0.154663L8.34601 0.334591L14.596 3.58459L15 3.79466V4.25V11.75V12.2053L14.596 12.4154L8.34601 15.6654L8 15.8453L7.65399 15.6654L1.40399 12.4154L1 12.2053V11.75V4.25V3.79466L1.40399 3.58459L7.65399 0.334591L8 0.154663ZM2.5 11.2947V5.44058L7.25 7.81559V13.7647L2.5 11.2947ZM8.75 13.7647L13.5 11.2947V5.44056L8.75 7.81556V13.7647ZM8 1.84534L12.5766 4.22519L7.99998 6.51352L3.42335 4.2252L8 1.84534Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI SDK</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The AI Toolkit for TypeScript</p></div></a></li></ul></li></ul></div></li><li><button id="radix-:Rirlklb:-trigger-solutions" data-state="closed" aria-expanded="false" aria-controls="radix-:Rirlklb:-content-solutions" class="navigation-menu_trigger__AmZ48" value="solutions" data-active="closed" data-radix-collection-item="">Solutions<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><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></button><div id="radix-:Rirlklb:-content-solutions" aria-labelledby="radix-:Rirlklb:-trigger-solutions" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="header-use-case">Use Cases</h5><ul aria-describedby="header-use-case" class="navigation-menu_links__VRoNf navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="AI Apps" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/ai-apps"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M2.5 0.5V0H3.5V0.5C3.5 1.60457 4.39543 2.5 5.5 2.5H6V3V3.5H5.5C4.39543 3.5 3.5 4.39543 3.5 5.5V6H3H2.5V5.5C2.5 4.39543 1.60457 3.5 0.5 3.5H0V3V2.5H0.5C1.60457 2.5 2.5 1.60457 2.5 0.5Z" fill="currentColor"/> <path d="M14.5 4.5V5H13.5V4.5C13.5 3.94772 13.0523 3.5 12.5 3.5H12V3V2.5H12.5C13.0523 2.5 13.5 2.05228 13.5 1.5V1H14H14.5V1.5C14.5 2.05228 14.9477 2.5 15.5 2.5H16V3V3.5H15.5C14.9477 3.5 14.5 3.94772 14.5 4.5Z" fill="currentColor"/> <path d="M8.40706 4.92939L8.5 4H9.5L9.59294 4.92939C9.82973 7.29734 11.7027 9.17027 14.0706 9.40706L15 9.5V10.5L14.0706 10.5929C11.7027 10.8297 9.82973 12.7027 9.59294 15.0706L9.5 16H8.5L8.40706 15.0706C8.17027 12.7027 6.29734 10.8297 3.92939 10.5929L3 10.5V9.5L3.92939 9.40706C6.29734 9.17027 8.17027 7.29734 8.40706 4.92939Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI Apps</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Deploy at the speed of AI</p></div></a></li><li><a data-hover-icon="false" data-feature="Composable Commerce" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/composable-commerce"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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.7496 1.89953C13.2746 1.32956 12.571 1 11.8291 1H4.17093C3.42897 1 2.72535 1.32956 2.25037 1.89955L1.07944 3.30467C0.705039 3.75395 0.5 4.32028 0.5 4.90512V5V13.5V15H2H6.04951H9.95049H14H15.5V13.5V5V4.90513C15.5 4.32029 15.295 3.75395 14.9205 3.30466L13.7496 1.89953ZM14 5V4.90513C14 4.67119 13.918 4.44466 13.7682 4.26494L14.9205 3.30466L13.7682 4.26494L12.5973 2.85981C12.4073 2.63182 12.1258 2.5 11.8291 2.5H4.17093C3.87415 2.5 3.5927 2.63182 3.4027 2.85982L2.23178 4.26494C2.08202 4.44465 2 4.67119 2 4.90512V5C2 5.82843 2.67157 6.5 3.5 6.5C4.32843 6.5 5 5.82843 5 5H6.5C6.5 5.82843 7.17157 6.5 8 6.5C8.82843 6.5 9.5 5.82843 9.5 5H11C11 5.82843 11.6716 6.5 12.5 6.5C13.3284 6.5 14 5.82843 14 5ZM14 7.59865C13.5587 7.85391 13.0464 8 12.5 8C11.604 8 10.7997 7.60718 10.25 6.98437C9.70029 7.60718 8.89602 8 8 8C7.10398 8 6.29971 7.60718 5.75 6.98437C5.20029 7.60718 4.39602 8 3.5 8C2.95357 8 2.44126 7.85391 2 7.59865V13.5H6V12C6 10.8954 6.89543 10 8 10C9.10457 10 10 10.8954 10 12V13.5H14V7.59865ZM8.5 12V13.5H7.5V12C7.5 11.7239 7.72386 11.5 8 11.5C8.27614 11.5 8.5 11.7239 8.5 12Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Composable Commerce</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Power storefronts that convert</p></div></a></li><li><a data-hover-icon="false" data-feature="Marketing Sites" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/marketing-sites"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill="currentColor" fill-rule="evenodd" d="M1 1v11.75A2.25 2.25 0 0 0 3.25 15H15v-1.5H3.25a.75.75 0 0 1-.75-.75V1H1Zm13.297 5.013.513-.547-1.094-1.026-.513.547-3.22 3.434-2.276-2.275a1 1 0 0 0-1.414 0L4.22 8.22l-.53.53 1.06 1.06.53-.53L7 7.56l2.287 2.287a1 1 0 0 0 1.437-.023l3.573-3.811Z" clip-rule="evenodd"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Marketing Sites</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Launch campaigns fast</p></div></a></li><li><a data-hover-icon="false" data-feature="Multi-tenant Platforms" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/multi-tenant-saas"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 3.75C1 2.23122 2.23122 1 3.75 1C5.26878 1 6.5 2.23122 6.5 3.75V5H9.5V3.75C9.5 2.23122 10.7312 1 12.25 1C13.7688 1 15 2.23122 15 3.75C15 5.26878 13.7688 6.5 12.25 6.5H11V9.5H12.25C13.7688 9.5 15 10.7312 15 12.25C15 13.7688 13.7688 15 12.25 15C10.7312 15 9.5 13.7688 9.5 12.25V11H6.5V12.25C6.5 13.7688 5.26878 15 3.75 15C2.23122 15 1 13.7688 1 12.25C1 10.7312 2.23122 9.5 3.75 9.5H5V6.5H3.75C2.23122 6.5 1 5.26878 1 3.75ZM11 5H12.25C12.9404 5 13.5 4.44036 13.5 3.75C13.5 3.05964 12.9404 2.5 12.25 2.5C11.5596 2.5 11 3.05964 11 3.75V5ZM9.5 6.5H6.5V9.5H9.5V6.5ZM11 12.25V11H12.25C12.9404 11 13.5 11.5596 13.5 12.25C13.5 12.9404 12.9404 13.5 12.25 13.5C11.5596 13.5 11 12.9404 11 12.25ZM5 11H3.75C3.05964 11 2.5 11.5596 2.5 12.25C2.5 12.9404 3.05964 13.5 3.75 13.5C4.44036 13.5 5 12.9404 5 12.25V11ZM5 3.75V5H3.75C3.05964 5 2.5 4.44036 2.5 3.75C2.5 3.05964 3.05964 2.5 3.75 2.5C4.44036 2.5 5 3.05964 5 3.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Multi-tenant Platforms</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Scale apps with one codebase</p></div></a></li><li><a data-hover-icon="false" data-feature="Web Apps" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/web-apps"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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.5 2.5H14.5V12.5C14.5 13.0523 14.0523 13.5 13.5 13.5H2.5C1.94772 13.5 1.5 13.0523 1.5 12.5V2.5ZM0 1H1.5H14.5H16V2.5V12.5C16 13.8807 14.8807 15 13.5 15H2.5C1.11929 15 0 13.8807 0 12.5V2.5V1ZM3.75 5.5C4.16421 5.5 4.5 5.16421 4.5 4.75C4.5 4.33579 4.16421 4 3.75 4C3.33579 4 3 4.33579 3 4.75C3 5.16421 3.33579 5.5 3.75 5.5ZM7 4.75C7 5.16421 6.66421 5.5 6.25 5.5C5.83579 5.5 5.5 5.16421 5.5 4.75C5.5 4.33579 5.83579 4 6.25 4C6.66421 4 7 4.33579 7 4.75ZM8.75 5.5C9.16421 5.5 9.5 5.16421 9.5 4.75C9.5 4.33579 9.16421 4 8.75 4C8.33579 4 8 4.33579 8 4.75C8 5.16421 8.33579 5.5 8.75 5.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Web Apps</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Ship features, not infrastructure</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="heading-user-solutions">Users</h5><ul aria-describedby="heading-user-solutions" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="Platform Engineers" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/platform-engineering"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M12.798 1.24199L13.3283 1.77232L14.0567 1.04389L13.1398 0.574402L12.798 1.24199ZM9.95705 4.0829L9.42672 3.55257L9.95705 4.0829ZM6.5844 6.95555L7.11473 7.48588L7.46767 7.13295L7.27837 6.67111L6.5844 6.95555ZM1.49995 12.04L2.03027 12.5703L2.03028 12.5703L1.49995 12.04ZM1.49994 14.54L0.969615 15.0703H0.969615L1.49994 14.54ZM3.99995 14.54L4.53028 15.0703L3.99995 14.54ZM9.10147 9.43848L9.37633 8.74066L8.91883 8.56046L8.57114 8.90815L9.10147 9.43848ZM14.7848 3.25519L15.4568 2.92229L14.9931 1.98617L14.2544 2.72486L14.7848 3.25519ZM11.9571 6.0829L11.4267 5.55257L11.9571 6.0829ZM10.5428 6.0829L11.0732 5.55257L11.0732 5.55257L10.5428 6.0829ZM9.95705 5.49711L9.42672 6.02744L9.42672 6.02745L9.95705 5.49711ZM12.2676 0.711655L9.42672 3.55257L10.4874 4.61323L13.3283 1.77232L12.2676 0.711655ZM10.7499 1.5C11.3659 1.5 11.9452 1.64794 12.4562 1.90957L13.1398 0.574402C12.4221 0.206958 11.6091 0 10.7499 0V1.5ZM6.99994 5.25C6.99994 3.17893 8.67888 1.5 10.7499 1.5V0C7.85045 0 5.49994 2.3505 5.49994 5.25H6.99994ZM7.27837 6.67111C7.09913 6.23381 6.99994 5.75443 6.99994 5.25H5.49994C5.49994 5.95288 5.63848 6.62528 5.89043 7.23999L7.27837 6.67111ZM6.05407 6.42522L0.969615 11.5097L2.03028 12.5703L7.11473 7.48588L6.05407 6.42522ZM0.969616 11.5097C-0.0136344 12.4929 -0.013635 14.0871 0.969615 15.0703L2.03027 14.0097C1.63281 13.6122 1.63281 12.9678 2.03027 12.5703L0.969616 11.5097ZM0.969615 15.0703C1.95287 16.0536 3.54703 16.0536 4.53028 15.0703L3.46962 14.0097C3.07215 14.4071 2.42774 14.4071 2.03027 14.0097L0.969615 15.0703ZM4.53028 15.0703L9.6318 9.96881L8.57114 8.90815L3.46962 14.0097L4.53028 15.0703ZM10.7499 9C10.2637 9 9.80071 8.90782 9.37633 8.74066L8.82661 10.1363C9.4232 10.3713 10.0724 10.5 10.7499 10.5V9ZM14.4999 5.25C14.4999 7.32107 12.821 9 10.7499 9V10.5C13.6494 10.5 15.9999 8.1495 15.9999 5.25H14.4999ZM14.1127 3.5881C14.3604 4.08811 14.4999 4.65168 14.4999 5.25H15.9999C15.9999 4.4156 15.8047 3.62465 15.4568 2.92229L14.1127 3.5881ZM12.4874 6.61323L15.3151 3.78552L14.2544 2.72486L11.4267 5.55257L12.4874 6.61323ZM10.0125 6.61323C10.6959 7.29665 11.804 7.29665 12.4874 6.61323L11.4267 5.55257C11.3291 5.6502 11.1708 5.6502 11.0732 5.55257L10.0125 6.61323ZM9.42672 6.02745L10.0125 6.61323L11.0732 5.55257L10.4874 4.96678L9.42672 6.02745ZM9.42672 3.55257C8.7433 4.23599 8.7433 5.34403 9.42672 6.02744L10.4874 4.96678C10.3898 4.86915 10.3897 4.71086 10.4874 4.61323L9.42672 3.55257Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Platform Engineers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Automate away repetition</p></div></a></li><li><a data-hover-icon="false" data-feature="Design Engineers" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/design-engineering"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M9 7L12.5 2.5" stroke="#E5484D" style="stroke:#E5484D;stroke:color(display-p3 0.8980 0.2824 0.3020);stroke-opacity:1;" stroke-width="1.5"/> <path d="M10.5 9.5L15.75 10.5" stroke="#52AEFF" style="stroke:#52AEFF;stroke:color(display-p3 0.3216 0.6824 1.0000);stroke-opacity:1;" stroke-width="1.5"/> <path d="M10 8L15.75 6" stroke="#45DEC4" style="stroke:#45DEC4;stroke:color(display-p3 0.2706 0.8706 0.7686);stroke-opacity:1;" stroke-width="1.5"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.14568 3.56625L7 2L7.85432 3.56625L12.1818 11.5L13 13H11.2914H2.70863H1L1.81818 11.5L3.31818 8.75H0V7.25H4.13636L6.14568 3.56625ZM3.52681 11.5L7 5.13249L10.4732 11.5H3.52681Z" fill="currentColor" /> </svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Design Engineers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Deploy for every idea</p></div></a></li></ul></li></ul></div></li><li><button id="radix-:Rirlklb:-trigger-resources" data-state="closed" aria-expanded="false" aria-controls="radix-:Rirlklb:-content-resources" class="navigation-menu_trigger__AmZ48" value="resources" data-active="open" data-radix-collection-item="">Resources<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><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></button><div id="radix-:Rirlklb:-content-resources" aria-labelledby="radix-:Rirlklb:-trigger-resources" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="heading-get-started">Tools</h5><ul aria-describedby="header-get-started" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="Resource Center" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/resources"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 0.154663L8.34601 0.334591L14.596 3.58459L15 3.79466V4.25V11.75V12.2053L14.596 12.4154L8.34601 15.6654L8 15.8453L7.65399 15.6654L1.40399 12.4154L1 12.2053V11.75V4.25V3.79466L1.40399 3.58459L7.65399 0.334591L8 0.154663ZM2.5 11.2947V5.44058L7.25 7.81559V13.7647L2.5 11.2947ZM8.75 13.7647L13.5 11.2947V5.44056L8.75 7.81556V13.7647ZM8 1.84534L12.5766 4.22519L7.99998 6.51352L3.42335 4.2252L8 1.84534Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Resource Center</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Today’s best practices</p></div></a></li><li><a href="/marketplace" data-hover-icon="false" data-feature="Marketplace" data-radix-collection-item="" data-zone="vercel-site" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M12.25 14.25V10L12.9212 10.1119C14.1403 10.315 15.25 9.37496 15.25 8.13908V7.86092C15.25 6.62504 14.1403 5.68496 12.9212 5.88813L12.25 6V1.75H8.235L8.30764 2.50382C8.41075 3.57386 7.56957 4.5 6.49457 4.5C5.42349 4.5 4.58361 3.58031 4.68058 2.51362L4.75 1.75H0.75V14.25H12.25Z" stroke="currentColor" fill="transparent" stroke-width="1.5"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Marketplace</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Extend and automate workflows</p></div></a></li><li><a href="/templates" data-hover-icon="false" data-feature="Templates" data-radix-collection-item="" data-zone="vercel-site" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 2.5H1.5V5H3V6H1.5V12.5C1.5 13.0523 1.94772 13.5 2.5 13.5H5V12.5H6V13.5H13.5C14.0523 13.5 14.5 13.0523 14.5 12.5V6H14V5H14.5V2.5ZM1.5 1H0V2.5V12.5C0 13.8807 1.11929 15 2.5 15H13.5C14.8807 15 16 13.8807 16 12.5V2.5V1H14.5H1.5ZM5 9V7.5H6V9H5ZM5 11.5V10H6V11.5H5ZM6.5 5V6H8V5L6.5 5ZM4 5V6H5.5V5H4ZM9 5V6H10.5V5H9ZM11.5 5V6H13V5H11.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Templates</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Jumpstart app development</p></div></a></li><li><a href="/guides" data-hover-icon="false" data-feature="Guides" data-radix-collection-item="" data-zone="vercel-docs" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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 1H0.75H5C6.2267 1 7.31583 1.58901 8 2.49963C8.68417 1.58901 9.7733 1 11 1H15.25H16V1.75V13V13.75H15.25H10.7426C10.1459 13.75 9.57361 13.9871 9.15165 14.409L8.53033 15.0303H7.46967L6.84835 14.409C6.42639 13.9871 5.8541 13.75 5.25736 13.75H0.75H0V13V1.75V1ZM7.25 4.75C7.25 3.50736 6.24264 2.5 5 2.5H1.5V12.25H5.25736C5.96786 12.25 6.65758 12.4516 7.25 12.8232V4.75ZM8.75 12.8232V4.75C8.75 3.50736 9.75736 2.5 11 2.5H14.5V12.25H10.7426C10.0321 12.25 9.34242 12.4516 8.75 12.8232Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Guides</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Find help quickly</p></div></a></li><li><a href="/experts" data-hover-icon="false" data-feature="Partner Finder" data-radix-collection-item="" data-zone="vercel-site" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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="M15.7329 1.15933L15.9807 0.0192871L14.8407 0.267122L5.22524 2.35744C3.79024 2.66939 2.66939 3.79024 2.35744 5.22523L0.267122 14.8407L0.0192871 15.9807L1.15933 15.7329L10.7748 13.6426C12.2098 13.3306 13.3306 12.2098 13.6426 10.7748L15.7329 1.15933ZM5.54388 3.8232L14.0193 1.98072L12.1768 10.4561C11.9896 11.3171 11.3171 11.9896 10.4561 12.1768L1.98072 14.0193L3.8232 5.54388C4.01037 4.68288 4.68288 4.01037 5.54388 3.8232ZM9 8C9 8.55229 8.55229 9 8 9C7.44772 9 7 8.55229 7 8C7 7.44772 7.44772 7 8 7C8.55229 7 9 7.44772 9 8ZM10.5 8C10.5 9.38072 9.38072 10.5 8 10.5C6.61929 10.5 5.5 9.38072 5.5 8C5.5 6.61929 6.61929 5.5 8 5.5C9.38072 5.5 10.5 6.61929 10.5 8Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Partner Finder</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Get help from solution partners</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" 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" id="heading-company">Company</h5><ul aria-describedby="header-company" class="navigation-menu_columnReset__5wkHH"><li><a data-hover-icon="false" data-feature="Customers" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/customers"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Customers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Trusted by the best teams</p></div></a></li><li><a data-hover-icon="false" data-feature="Blog" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/blog"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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.75 0.189331L9.28033 0.719661L15.2803 6.71966L15.8107 7.24999L15.2803 7.78032L13.7374 9.32322C13.1911 9.8696 12.3733 9.97916 11.718 9.65188L9.54863 13.5568C8.71088 15.0648 7.12143 16 5.39639 16H0.75H0V15.25V10.6036C0 8.87856 0.935237 7.28911 2.4432 6.45136L6.34811 4.28196C6.02084 3.62674 6.13039 2.80894 6.67678 2.26255L8.21967 0.719661L8.75 0.189331ZM7.3697 5.43035L10.5696 8.63029L8.2374 12.8283C7.6642 13.8601 6.57668 14.5 5.39639 14.5H2.56066L5.53033 11.5303L4.46967 10.4697L1.5 13.4393V10.6036C1.5 9.42331 2.1399 8.33579 3.17166 7.76259L7.3697 5.43035ZM12.6768 8.26256C12.5791 8.36019 12.4209 8.36019 12.3232 8.26255L12.0303 7.96966L8.03033 3.96966L7.73744 3.67677C7.63981 3.57914 7.63981 3.42085 7.73744 3.32321L8.75 2.31065L13.6893 7.24999L12.6768 8.26256Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Blog</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The latest posts and changes</p></div></a></li><li><a data-hover-icon="false" data-feature="Changelog" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/changelog"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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="M6.28497 1.5H13V12C13 12.5523 12.5523 13 12 13H6.28497L6.28497 1.5ZM5.03497 1.5H3V12C3 12.5523 3.44772 13 4 13H5.03497L5.03497 1.5ZM5.03497 14.5H4C2.61929 14.5 1.5 13.3807 1.5 12V1.5V0H3H13H14.5V1.5V12C14.5 13.3807 13.3807 14.5 12 14.5H6.28497V15V15.625H5.03497V15V14.5ZM8.505 3.375H9.13H10.13H10.755V4.625H10.13H9.13H8.505V3.375ZM9.13 6.375H8.505V7.625H9.13H10.13H10.755V6.375H10.13H9.13Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Changelog</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">See what shipped</p></div></a></li><li><a data-hover-icon="false" data-feature="Press" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/press"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><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="M6 2.5H10C10.2761 2.5 10.5 2.72386 10.5 3V4H5.5V3C5.5 2.72386 5.72386 2.5 6 2.5ZM4 4V3C4 1.89543 4.89543 1 6 1H10C11.1046 1 12 1.89543 12 3V4H14.5H16V5.5V13.5C16 14.8807 14.8807 16 13.5 16H2.5C1.11929 16 0 14.8807 0 13.5V5.5V4H1.5H4ZM12 5.5H10.5H5.5H4H1.5V9.25H7.25V8.5H8.75V9.25L14.5 9.25V5.5H12ZM8.75 10.75L14.5 10.75V13.5C14.5 14.0523 14.0523 14.5 13.5 14.5H2.5C1.94772 14.5 1.5 14.0523 1.5 13.5V10.75H7.25V11.5H8.75V10.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Press</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Read the latest news</p></div></a></li></ul></li></ul></div></li><li><a data-active="closed" data-zone="same" class="link_link__hbWKh navigation-menu_link__vSiGj" href="/enterprise">Enterprise</a></li><li><a href="/docs" data-active="closed" data-zone="vercel-docs" class="link_link__hbWKh navigation-menu_link__vSiGj">Docs</a></li><li><a data-active="closed" data-zone="same" class="link_link__hbWKh navigation-menu_link__vSiGj" href="/pricing">Pricing</a></li></ul></div><div class="navigation-menu_viewportPosition__U0Mm6" style="transform:translateX(var(--left-offset))"></div></nav></div></div><!--$--><!--/$--><style> @media (max-width: 1150px) { #header-content { display: none; } } </style><div class="stack_stack__iZkUS stack right-section_content__O_uw2" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:12px" id="header-content"><div class="stack_stack__iZkUS stack right-section_nonPrimaryContent__af_Pf" data-version="v1" style="opacity:1;filter:blur(0px);--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:0px"><a role="link" tabindex="0" href="/login" type="submit" data-testid="header/log-in" data-zone="vercel-site" 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_">Log In</span></a><a role="link" tabindex="0" href="/contact" type="submit" data-testid="header/contact" data-zone="same" 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_">Contact</span></a></div><div class="morphing-button-link_morphing__ET66p" style="--width-duration:400ms"><a role="link" tabindex="-1" href="/signup" type="submit" aria-hidden="true" data-ghost="" data-testid="header/sign-up" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc morphing-button-link_ghostCta__V7oD5 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_">Sign Up</span></a><a role="link" tabindex="0" href="/signup" type="submit" style="width:auto;--geist-icon-size:16px" data-testid="header/sign-up" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc morphing-button-link_displayCta__eRphH button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1"><span class="button_content__1aE1_"><div data-display-children="">Sign Up</div></span></a></div></div><!--$--><!--/$--><style> @media (min-width: 1151px) { #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></header></div><div class="stack_stack__iZkUS stack geist-soft-reset grid_page__PyNa0 layout_page__OVMht stack_padding__ox8JS" data-version="v1" style="--banner-padding-t-lg:29px;--banner-padding-b-lg:29px;--banner-padding-t:16px;--banner-padding-b:24px;--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--sm-stack-padding:16px 0px;--md-stack-padding:32px 0px;--lg-stack-padding:90px 0px;--xl-stack-padding:90px 0px;--stack-gap:0px"><main><nav class="blog-navigation_nav__uaZhA"><button type="submit" aria-haspopup="true" aria-expanded="false" aria-controls="menu-:R5ltfblklb:" aria-label="Open category filter menu" data-geist-menu-button="" data-is-open="false" id="menu-button-:R5ltfblklbH1:" style="--geist-icon-size:16px" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc blog-navigation_toggle__zXL_n button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="true" data-version="v1"><span class="button_content__1aE1_ button_center__nyfP_">All Posts</span><span class="button_suffix__ucg7R"><svg class="blog-navigation_chevron__Juvui" 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></button><ul class="blog-navigation_links__93CLe"><li class="text_wrapper__i87JK blog-navigation_active__XdQnC" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a aria-current="page" data-zone="same" class="link_link__hbWKh" href="/blog"><span class="blog-navigation_linkText__KdeGD">All Posts</span><span class="blog-navigation_highlight__eXgfK"></span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/blog/category/engineering"><span class="blog-navigation_linkText__KdeGD">Engineering</span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/blog/category/community"><span class="blog-navigation_linkText__KdeGD">Community</span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/blog/category/company-news"><span class="blog-navigation_linkText__KdeGD">Company News</span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/blog/category/customers"><span class="blog-navigation_linkText__KdeGD">Customers</span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/changelog"><span class="blog-navigation_linkText__KdeGD">Changelog</span></a></li><li class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400"><a data-zone="same" class="link_link__hbWKh" href="/press"><span class="blog-navigation_linkText__KdeGD">Press</span></a></li></ul><div class="blog-navigation_right__Dsw7_"><div class="search_container__lbQWq" data-mobile-search-open="false"><button type="submit" aria-label="Open blog search menu" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc search_mobile-button__N_VWP button_secondary__kMMNc button_shape__K_zQW button_circle__zYDEK 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_ button_flex__fCY56"><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.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></button><label aria-haspopup="listbox" class="search_label__FPlF_ search_hide-on-mobile__7j0bm"><span class="geist-sr-only" id="search-posts">Search posts</span><div class="input_container__jQS33 input_prefix__jVRdh input_noPrefixStyle__eL_eQ input_small__F6Zw0" data-geist-input-wrapper="" data-version="v1" style="--geist-icon-size:16px"><input aria-autocomplete="list" aria-controls="index-blog-output" aria-labelledby="search-posts" placeholder="Search posts" aria-invalid="false" autoCapitalize="none" autoComplete="off" autoCorrect="off" class="input_input__qqGLC search_input__lmSCb" data-geist-input="" id="undefined-:Rktltfblklb:" spellCheck="false" type="search" value=""/><label aria-hidden="true" data-geist-input-prefix="" for="undefined-:Rktltfblklb:"><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 7C3.5 5.067 5.067 3.5 7 3.5C8.933 3.5 10.5 5.067 10.5 7C10.5 7.88461 10.1718 8.69256 9.63058 9.30876L9.30876 9.63058C8.69256 10.1718 7.88461 10.5 7 10.5C5.067 10.5 3.5 8.933 3.5 7ZM9.96544 11.0261C9.13578 11.6382 8.11014 12 7 12C4.23858 12 2 9.76142 2 7C2 4.23858 4.23858 2 7 2C9.76142 2 12 4.23858 12 7C12 8.11014 11.6382 9.13578 11.0261 9.96544L14.0303 12.9697L14.5607 13.5L13.5 14.5607L12.9697 14.0303L9.96544 11.0261Z" fill="currentColor"/></svg></label></div></label><ul aria-live="polite" class="search_results__70DqH" id="index-blog-output" role="listbox" style="display:none" tabindex="-1"><li class="text_wrapper__i87JK search_result__pu8lN" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:0px;--text-weight:400;--text-align:center" aria-selected="false" role="option">No results found for "<!-- -->".<br/>Try again with a different keyword.</li></ul></div><a role="link" tabindex="0" href="/atom" type="submit" aria-label="RSS feed" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc blog-navigation_button__w4pZX button_secondary__kMMNc button_shape__K_zQW button_circle__zYDEK 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_ button_flex__fCY56"><svg class="blog-navigation_rss__wwHeT" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:var(--ds-gray-900)" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 2.5C7.90356 2.5 13.5 8.09644 13.5 15H15C15 7.26801 8.73199 1 1 1V2.5ZM8 15C8 11.134 4.86599 8 1 8V6.5C5.69442 6.5 9.5 10.3056 9.5 15H8ZM2.5 15C2.5 14.1716 1.82843 13.5 1 13.5V12C2.65685 12 4 13.3431 4 15H2.5Z" fill="currentColor"/></svg></span></a></div></nav><div class="grid_gridSystemContentWrapper__r3dlj"><div class="grid_gridSystem__LtQ2f"><ul class="grid_grid__MIUsj" data-grid="" style="--sm-grid-rows:3;--lg-grid-rows:1;--sm-grid-columns:1;--lg-grid-columns:3;--sm-height:fit-content"><h1 class="geist-sr-only">Featured articles</h1><li class="grid_block__lyImu hero_cell__ufHk3" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:auto;padding:0"><article aria-label="How Vercel adopted microfrontends" class="article-card_card__wJ9Qd article-card_featured__t2z1e undefined"><a class="article-card_post__ej3CY" href="/blog/how-vercel-adopted-microfrontends"><div class="article-card_label__b5GQ1"><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:8px"><div aria-hidden="true" class="pixelated-icon_container__lCO1n animated-pixel-icon_icon__xR7r7"><svg viewBox="0 0 1 1"><path d="M0.2292 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 " fill="var(--ds-gray-1000)"></path><path d="" fill="var(--ds-gray-1000)" opacity="0.5"></path></svg><canvas style="max-width:100%;max-height:100%"></canvas></div></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-22">Oct 22</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1.5rem;--xs-text-line-height:2rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.96px;--sm-text-size:1.5rem;--sm-text-line-height:2rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.96px;--smd-text-size:2rem;--smd-text-line-height:2.5rem;--smd-text-weight:600;--smd-text-letter-spacing:-1.28px;--md-text-size:2rem;--md-text-line-height:2.5rem;--md-text-weight:600;--md-text-letter-spacing:-1.28px;--lg-text-size:2rem;--lg-text-line-height:2.5rem;--lg-text-weight:600;--lg-text-letter-spacing:-1.28px">How Vercel adopted microfrontends</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Vercel's main website, once a single large Next.js application, serves both our website visitors and logged-in dashboard. But, as Vercel grew, this setup revealed opportunities for improvement. Build times grew, dependency management became more intricate, and workflows needed optimization. Minor changes triggered full builds, affecting isolated development and CI pipelines. It was clear a change was needed.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for mknichel" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for mknichel" title="Avatar for mknichel" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=mknichel&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for danfein" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danfein" title="Avatar for danfein" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danfein&s=40"/></span></span><span aria-label="1 more avatars in this group" class="group_note__qO6KS group_avatar__lIXsf" title="1 more avatars in this group"><span aria-label="Avatar for brianemerick-vercelcom" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for brianemerick-vercelcom" title="Avatar for brianemerick-vercelcom" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=brianemerick-vercelcom&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Mark, Dan, and Brian</span></div></a></article></li><li class="grid_block__lyImu hero_cell__ufHk3" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:auto;padding:0"><article aria-label="v0 plans for teams are here" class="article-card_card__wJ9Qd article-card_featured__t2z1e"><a class="article-card_post__ej3CY" href="/blog/v0-plans-for-teams"><div class="article-card_label__b5GQ1"><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:8px"><div aria-hidden="true" class="pixelated-icon_container__lCO1n animated-pixel-icon_icon__xR7r7"><svg viewBox="0 0 1 1"><path d="M0.6042 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.0208 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.0625 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.0625 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1042 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9375 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.9792 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8958 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 " fill="var(--ds-gray-1000)"></path><path d="" fill="var(--ds-gray-1000)" opacity="0.5"></path></svg><canvas style="max-width:100%;max-height:100%"></canvas></div></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-15">Oct 15</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1.25rem;--xs-text-line-height:1.625rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.4px;--sm-text-size:1.25rem;--sm-text-line-height:1.625rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.4px;--smd-text-size:1.5rem;--smd-text-line-height:2rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.96px;--md-text-size:1.5rem;--md-text-line-height:2rem;--md-text-weight:600;--md-text-letter-spacing:-0.96px;--lg-text-size:1.5rem;--lg-text-line-height:2rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.96px">v0 plans for teams are here</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Last October we introduced v0—a generative user interface system powered by natural language and AI. Users generated over four million designs, creating everything from sophisticated dashboards to polished marketing pages. Now, v0 is like having an expert programmer sitting next to you. It's an assistant that specializes in web technologies and frameworks to help you generate functional code and UI from best practices, migrate or debug existing code, or learn to code for the first time. Starting today, v0 is available to teams of all sizes, with plans designed to help you collaborate and scale securely. v0 Team and v0 Enterprise plans offer security features like SSO and, for Enterprise, the ability to opt out of data training, while helping you share and reuse knowledge and generations across your whole team. </p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for jared" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for jared" title="Avatar for jared" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=jared&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for jueungraceyun" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for jueungraceyun" title="Avatar for jueungraceyun" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=jueungraceyun&s=40"/></span></span><span aria-label="1 more avatars in this group" class="group_note__qO6KS group_avatar__lIXsf" title="1 more avatars in this group"><span aria-label="Avatar for aryamank" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for aryamank" title="Avatar for aryamank" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=aryamank&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Jared, Jueun, and Aryaman</span></div></a></article></li><li class="grid_block__lyImu hero_cell__ufHk3" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:auto;padding:0"><article aria-label="Vercel WAF upgrade brings persistent actions, rate limiting, and API control" class="article-card_card__wJ9Qd article-card_featured__t2z1e"><a class="article-card_post__ej3CY" href="/blog/vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control"><div class="article-card_label__b5GQ1"><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:8px"><div aria-hidden="true" class="pixelated-icon_container__lCO1n animated-pixel-icon_icon__xR7r7"><svg viewBox="0 0 1 1"><path d="M0.4792 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.0208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.0625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.1042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.1458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.1875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.2292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.2708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.3958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.4375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.4792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.5208 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.5625 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6042 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6458 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1458 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8542 0.6875 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.7292 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.1875 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.8125 0.7708 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2292 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7708 0.8125 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.2708 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3125 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6875 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.7292 0.8542 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3542 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.3958 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6042 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.6458 0.8958 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4375 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5625 0.9375 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.4792 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 M0.5208 0.9792 m-0.0208,0 a0.0208,0.0208 0 1,0 0.0416,0 a0.0208,0.0208 0 1,0 -0.0416,0 " fill="var(--ds-gray-1000)"></path><path d="" fill="var(--ds-gray-1000)" opacity="0.5"></path></svg><canvas style="max-width:100%;max-height:100%"></canvas></div></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-02">Oct 2</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1.25rem;--xs-text-line-height:1.625rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.4px;--sm-text-size:1.25rem;--sm-text-line-height:1.625rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.4px;--smd-text-size:1.5rem;--smd-text-line-height:2rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.96px;--md-text-size:1.5rem;--md-text-line-height:2rem;--md-text-weight:600;--md-text-letter-spacing:-0.96px;--lg-text-size:1.5rem;--lg-text-line-height:2rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.96px">Vercel WAF upgrade brings persistent actions, rate limiting, and API control</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">At Vercel Ship, we introduced the new Web Application Firewall (WAF), an application-layer firewall that complements our platform-wide firewall. This enables our customers to implement custom or managed rulesets, such as protection against the OWASP Top 10 risks. Since its release, Vercel’s WAF has blocked billions of malicious requests, demonstrating its resilience and reliability across a wide variety of use cases, from small startups to large enterprise deployments.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for danfein" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danfein" title="Avatar for danfein" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danfein&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Dan Fein</span></div></a></article></li><div class="grid_cross__fUKA7" data-grid-cross="" style="--cross-row:1;--cross-column:1"><div class="grid_crossLine__BTLQL" style="width:var(--cross-half-size);height:var(--cross-size);border-right-width:var(--guide-width)"></div><div class="grid_crossLine__BTLQL" style="width:var(--cross-size);height:var(--cross-half-size);border-bottom-width:var(--guide-width)"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_xsGuide__Xupsz" style="--x:1;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_xsGuide__Xupsz" style="--x:1;--y:2;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_xsGuide__Xupsz" style="--x:1;--y:3;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_smGuide__dhwwf" style="--x:1;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_smGuide__dhwwf" style="--x:1;--y:2;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_smGuide__dhwwf" style="--x:1;--y:3;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_smdGuide__pWYK7" style="--x:1;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_smdGuide__pWYK7" style="--x:1;--y:2;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_smdGuide__pWYK7" style="--x:1;--y:3;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_mdGuide__Kf1OM" style="--x:1;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_mdGuide__Kf1OM" style="--x:1;--y:2;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_mdGuide__Kf1OM" style="--x:1;--y:3;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_lgGuide__2OXaB" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_lgGuide__2OXaB" style="--x:2;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_lgGuide__2OXaB" style="--x:3;--y:1;border-right:none;border-bottom:none"></div></div></ul><ul class="grid_grid__MIUsj" data-grid="" style="--sm-grid-rows:14;--md-grid-rows:8;--lg-grid-rows:6;--sm-grid-columns:2;--lg-grid-columns:3;--sm-height:fit-content" aria-live="polite" hideGuides="row" role="region"><div class="grid_block__lyImu page_headingContainer__9ZAgw" data-grid-cell="" style="--sm-grid-row:1 / span 1;--sm-grid-column:1/-1;--sm-cell-rows:1;--sm-cell-columns:-2"><h1 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1.5rem;--xs-text-line-height:2rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.96px;--sm-text-size:1.5rem;--sm-text-line-height:2rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.96px;--smd-text-size:2rem;--smd-text-line-height:2.5rem;--smd-text-weight:600;--smd-text-letter-spacing:-1.28px;--md-text-size:2rem;--md-text-line-height:2.5rem;--md-text-weight:600;--md-text-letter-spacing:-1.28px;--lg-text-size:2rem;--lg-text-line-height:2.5rem;--lg-text-weight:600;--lg-text-letter-spacing:-1.28px">Latest news.</h1></div><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Life of a Vercel request: Navigating the Edge Network" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/life-of-a-vercel-request-navigating-the-edge-network"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">General</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-21">Nov 21</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Life of a Vercel request: Navigating the Edge Network</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Vercel’s framework-defined infrastructure provisions cloud resources while providing full transparency, from the initial build to every incoming request. Developers can track how static assets are distributed globally, functions handle ISR revalidation, and resources manage routing, server-side rendering, and more. As users visit your app, granular metrics reveal which resources were leveraged to serve their request. This series unpacks the Vercel Edge Network and associated resource allocation, exploring each stage of a request, and how Vercel streamlines the process. With a clear understanding of these metrics and optimization strategies, you can deliver better user experiences while improving resource consumption and reducing costs.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for danfein" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danfein" title="Avatar for danfein" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danfein&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Dan Fein</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Vercel acquires Grep to accelerate code search" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/vercel-acquires-grep"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Company News</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-20">Nov 20</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Vercel acquires Grep to accelerate code search</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Grep allows developers to quickly search code across over 500,000 public git repositories. With the acquisition, founder Dan Fox will also be joining Vercel’s AI team to continue building Grep to enhance code search for developers.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for jared" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for jared" title="Avatar for jared" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=jared&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for danmfox" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danmfox" title="Avatar for danmfox" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danmfox&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Jared and Dan</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="AI SDK 4.0" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/ai-sdk-4-0"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Engineering</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-18">Nov 18</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">AI SDK 4.0</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">The AI SDK is an open-source toolkit for building AI applications with JavaScript and TypeScript. Its unified provider API allows you to use any language model and enables powerful UI integrations into leading web frameworks such as Next.js and Svelte.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for lgrammel" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for lgrammel" title="Avatar for lgrammel" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=lgrammel&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for jared" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for jared" title="Avatar for jared" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=jared&s=40"/></span></span><span aria-label="2 more avatars in this group" class="group_note__qO6KS group_avatar__lIXsf" title="2 more avatars in this group"><span aria-label="Avatar for nicoalbanese" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for nicoalbanese" title="Avatar for nicoalbanese" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=nicoalbanese&s=40"/></span><span class="text_wrapper__i87JK group_noteText__TUrTJ dark-theme" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.625rem;--text-line-height:0.75rem;--text-letter-spacing:initial;--text-weight:600">+2</span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Lars, Jared, and 2 others</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Accelerating partner success: Vercel’s new Partner Program benefits" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/vercel-partner-program-updates"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">General</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-15">Nov 15</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Accelerating partner success: Vercel’s new Partner Program benefits</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">At Vercel, we believe in the power of partnership and collaboration to drive innovation and mutual success. One in two sales and project delivery is done in collaboration with our partners. Last month, over 35 partners sponsored and supported Next.js Conf—our annual open-source conference—where over 1,000 people gathered in San Francisco and tens of thousands online from around the world. From championing an open web, supporting industry alliances, to developing joint features that enhance customer and user experiences, we're achieving more together.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for jennshumann" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for jennshumann" title="Avatar for jennshumann" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=jennshumann&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Jen Chang</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Life of a Vercel request: What happens when a user presses enter" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">General</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-13">Nov 13</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Life of a Vercel request: What happens when a user presses enter</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">When developers push code, Vercel’s framework-defined infrastructure analyzes the codebase and intelligently provisions cloud resources. When requests come in, Vercel’s infrastructure instantly routes them to the nearest data center over a high-speed, low-latency network, delivering a response right back to the user. Vercel handles all of this behind the scenes. But understanding how your framework code powers the infrastructure—from deployment to request handling—gives you insight into how Vercel’s components work together, and enables you to further optimize user experiences. Here’s how Vercel manages requests at every stage.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for danfein" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danfein" title="Avatar for danfein" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danfein&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Dan Fein</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Vercel named a Visionary in 2024 Gartner® Magic Quadrant™ for Cloud Application Platforms" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/vercel-named-a-visionary-in-2024-gartner-magic-quadrant-for-cloud"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Company News</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-08">Nov 8</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Vercel named a Visionary in 2024 Gartner® Magic Quadrant™ for Cloud Application Platforms</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">The Frontend Cloud is designed for developers and teams that care deeply about user experiences. Whether you're serving billions of users or building your first project, the Frontend Cloud helps you remove friction from the development and delivery process. This allows you to focus on building your product instead of managing and configuring the infrastructure required to make it work.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for cramforce" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for cramforce" title="Avatar for cramforce" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=cramforce&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for pstaelin" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for pstaelin" title="Avatar for pstaelin" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=pstaelin&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Malte and Paul</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="MotorTrend: Shifting into overdrive with Vercel" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/motortrend-shifting-into-overdrive-with-vercel"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Customers</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-11-07">Nov 7</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">MotorTrend: Shifting into overdrive with Vercel</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">MotorTrend—a Warner Bros. Discovery company and the world’s leading media company on all things automotive—needed a digital experience as powerful as the vehicles they showcase. Bogged down by a legacy tech stack, their development team faced frustratingly long build times and a cumbersome release process. They knew a complete redesign wasn't the answer—they needed a platform upgrade. </p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for danfein" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for danfein" title="Avatar for danfein" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=danfein&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Dan Fein</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Break the news, not the site: Leading news organizations upgrade their infrastructure ahead of the election" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/break-the-news-not-the-site"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">General</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-31">Oct 31</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Break the news, not the site: Leading news organizations upgrade their infrastructure ahead of the election</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">When major political developments unfold, millions rush to news websites, putting immense pressure on digital infrastructure. With global audiences, slow-loading websites or crashes during a major event can be catastrophic for a news organization.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for vercelina" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for vercelina" title="Avatar for vercelina" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=vercelina&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Alina Weinstein</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="A deep dive into Hive: Vercel’s builds infrastructure" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/a-deep-dive-into-hive-vercels-builds-infrastructure"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Engineering</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-30">Oct 30</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">A deep dive into Hive: Vercel’s builds infrastructure</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Hive is Vercel’s low-level untrusted and ephemeral compute platform—designed to give us the control needed to securely and efficiently manage and run builds. Since November 2023, Hive has powered Vercel’s builds, enabling key improvements like enhanced build machines and a 30% improvement in build performance. The platform operates on the fundamental assumption that we’re executing potentially malicious code on multi-tenant machines, requiring it to be safe, reliable, performant, and cost-effective. It’s architected to handle multiple use cases and can be composed in different ways depending on what’s needed. Most recently, Hive allowed us to reduce provisioning times for Secure Compute customers from 90 seconds to 5 seconds, while also improving their build speeds. We built Hive because we needed finer control and more granular management to continuously improve Vercel’s infrastructure, to meet the growing demands of our customers and to fulfill our vision of delivering the best development experience in the world.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for mcocirio" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for mcocirio" title="Avatar for mcocirio" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=mcocirio&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for gudmundur" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for gudmundur" title="Avatar for gudmundur" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=gudmundur&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Mariano and Guðmundur</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Recap: Next.js Conf 2024" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/recap-next-js-conf-2024"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Community</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-25">Oct 25</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Recap: Next.js Conf 2024</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Our fifth annual Next.js Conf finished yesterday, where we shared our research and upcoming improvements to the framework, as well as what's new in the community and Next.js ecosystem. Over 1,000 people in the Next.js community gathered in San Francisco and tens of thousands around the world watched online to see what's new with Next.js.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for leerob" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for leerob" title="Avatar for leerob" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=leerob&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for delbaoliveira" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for delbaoliveira" title="Avatar for delbaoliveira" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=delbaoliveira&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Lee and Delba</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="Maximizing outputs with v0: From UI generation to code creation" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/maximizing-outputs-with-v0-from-ui-generation-to-code-creation"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">Engineering</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-23">Oct 23</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">Maximizing outputs with v0: From UI generation to code creation</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">v0 is a powerful tool for generating high-quality UIs and code, and it's also an educational asset for designing and creating on the web. It leverages deep integrations with libraries and modern frameworks like Next.js and React. Whether you're looking to scaffold a new project, fetch data, or create 3D graphics, v0 is designed to meet all your frontend development needs. To get the highest quality generations, you need to be able to craft input prompts to guide v0 well. The better you guide v0 and understand its strengths, the more accurate and relevant the responses you'll get. In this post, we’ll look at how you can get the most out of v0’s core features, UI generation abilities, code generation, and developer support.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for perilanglois1" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for perilanglois1" title="Avatar for perilanglois1" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=perilanglois1&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for aryamank" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for aryamank" title="Avatar for aryamank" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=aryamank&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Peri and Aryaman</span></div></a></article></li><li class="grid_block__lyImu page_smallCards__SZSRM" data-grid-cell="" style="--sm-grid-row:auto;--sm-grid-column:1/-1;--smd-grid-column:auto;--sm-cell-rows:auto;--sm-cell-columns:-2;--smd-cell-columns:auto;padding:0"><article aria-label="What's new in Svelte 5" class="article-card_card__wJ9Qd"><a class="article-card_post__ej3CY" href="/blog/whats-new-in-svelte-5"><div class="article-card_label__b5GQ1"><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:8px"><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400">General</span></div><time class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.8125rem;--text-line-height:1rem;--text-letter-spacing:0px;--text-weight:400" dateTime="2024-10-23">Oct 23</time></div><h2 class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-1000);--xs-text-size:1rem;--xs-text-line-height:1.5rem;--xs-text-weight:600;--xs-text-letter-spacing:-0.32px;--sm-text-size:1rem;--sm-text-line-height:1.5rem;--sm-text-weight:600;--sm-text-letter-spacing:-0.32px;--smd-text-size:1.25rem;--smd-text-line-height:1.625rem;--smd-text-weight:600;--smd-text-letter-spacing:-0.4px;--md-text-size:1.25rem;--md-text-line-height:1.625rem;--md-text-weight:600;--md-text-letter-spacing:-0.4px;--lg-text-size:1.25rem;--lg-text-line-height:1.625rem;--lg-text-weight:600;--lg-text-letter-spacing:-0.4px">What's new in Svelte 5</h2><div class="article-card_introContainer__C3b0O"><p class="text_wrapper__i87JK article-card_intro__spYGt" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.875rem;--xs-text-line-height:1.25rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.875rem;--sm-text-line-height:1.25rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">With its compiler-first approach, fine-grained reactivity, and ability to integrate with any JavaScript project, Svelte stands apart from other frameworks. At Vercel, we're big fans of Svelte—deeply invested in its success and constantly working to make our platform the best place to build and deploy Svelte apps. With the arrival of Svelte 5, let's explore what makes this release exciting.</p></div><div class="author_authors__Y87kP article-card_authors__n87FF"><div aria-hidden="true" class="group_group__kGaNq"><span class="group_avatar__lIXsf"><span aria-label="Avatar for alicemoore" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for alicemoore" title="Avatar for alicemoore" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=alicemoore&s=40"/></span></span><span class="group_avatar__lIXsf"><span aria-label="Avatar for rich-harris" class="avatar_avatar__3ccqO" data-geist-avatar="" data-mask="true" data-resolved="false" data-version="v1" role="img" style="--size:20px"><img data-version="v1" alt="Avatar for rich-harris" title="Avatar for rich-harris" loading="eager" width="20" height="20" decoding="sync" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent" src="/api/www/avatar?u=rich-harris&s=40"/></span></span></div><span class="text_wrapper__i87JK" data-version="v1" style="--text-color:var(--ds-gray-900);--xs-text-size:0.8125rem;--xs-text-line-height:1rem;--xs-text-weight:400;--xs-text-letter-spacing:0px;--sm-text-size:0.8125rem;--sm-text-line-height:1rem;--sm-text-weight:400;--sm-text-letter-spacing:0px;--smd-text-size:0.875rem;--smd-text-line-height:1.25rem;--smd-text-weight:400;--smd-text-letter-spacing:0px;--md-text-size:0.875rem;--md-text-line-height:1.25rem;--md-text-weight:400;--md-text-letter-spacing:0px;--lg-text-size:0.875rem;--lg-text-line-height:1.25rem;--lg-text-weight:400;--lg-text-letter-spacing:0px">Alice and Rich</span></div></a></article></li><div class="grid_block__lyImu" data-grid-cell="" style="--sm-grid-row:14/15;--smd-grid-row:8/9;--lg-grid-row:6/7;--sm-grid-column:1/-1;--sm-cell-rows:1;--sm-cell-columns:-2;display:flex;justify-content:center;width:100%"><button type="button" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc page_showMoreButton__LoDCn button_secondary__kMMNc button_rounded__5toZs button_shadow__fnbqq 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_">Show more posts</span></button></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:1;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:2;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:3;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:4;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:5;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:6;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:7;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:7;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:8;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:8;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:9;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:9;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:10;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:10;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:11;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:11;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:12;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:12;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:13;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:13;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:14;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:14;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:1;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:2;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:3;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:4;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:5;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:6;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:7;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:7;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:8;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:8;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:9;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:9;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:10;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:10;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:11;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:11;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:12;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:12;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:13;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:13;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:14;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:14;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:1;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:2;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:3;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:4;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:5;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:6;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:7;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:7;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:8;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:8;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:1;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:2;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:3;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:4;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:5;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:6;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:7;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:7;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:8;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:8;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:1;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:2;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:3;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:3;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:4;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:4;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:5;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:5;border-right:none;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:6;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:6;border-right:none;border-bottom:none"></div></div></ul><section class="grid_grid__MIUsj" data-grid="" style="--sm-grid-rows:2;--lg-grid-rows:1;--sm-grid-columns:2;--lg-grid-columns:3;--sm-height:fit-content"><div class="grid_block__lyImu footer_primaryCell__imrUh" data-grid-cell="" style="--sm-grid-row:1 / span 1;--sm-grid-column:1/3;--sm-cell-rows:1;--sm-cell-columns:2"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--sm-stack-align:center;--lg-stack-align:flex-start;--stack-justify:center;--stack-padding:0px;--stack-gap:24px"><div class="footer_primaryDescription__FCws1"><p><b>Ready to deploy? </b>Start building with a free account. Speak to an expert for your <i>Pro</i> or <u>Enterprise</u> needs.</p></div><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:16px"><a role="link" tabindex="0" href="/new" type="submit" data-track="true" data-track-intent="Get Started" data-zone="vercel-site" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc geist-new-themed geist-new-default geist-new-default-fill button_rounded__5toZs 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_"><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:8px">Start Deploying</div></span></a><a role="link" tabindex="0" href="/contact/sales" type="submit" data-track="true" data-track-intent="Contact Sales" data-zone="same" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_rounded__5toZs button_shadow__fnbqq 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_"><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:8px">Contact Sales</div></span></a></div></div></div><div class="grid_block__lyImu footer_secondaryCell__hHZGf footer_secondaryCellRenderingCTAAsButton__1_Qqs" data-grid-cell="" style="--sm-grid-row:2 / span 1;--lg-grid-row:1 / span 1;--sm-grid-column:1/3;--lg-grid-column:3/4;--sm-cell-rows:1;--sm-cell-columns:2;--lg-cell-columns:1;overflow:visible"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--sm-stack-direction:column;--lg-stack-direction:column;--sm-stack-align:center;--lg-stack-align:flex-start;--stack-justify:center;--stack-padding:0px;--sm-stack-gap:16px;--md-stack-gap:16px;--lg-stack-gap:24px;--xl-stack-gap:24px"><div class="footer_secondaryDescription__AnuHo"><p><b>Explore Vercel Enterprise</b> with an interactive product tour, trial, or a personalized demo.</p></div><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:row;--stack-align:center;--sm-stack-justify:center;--lg-stack-justify:space-between;--stack-padding:0px;--sm-stack-gap:24px;--md-stack-gap:24px;--lg-stack-gap:8px;--xl-stack-gap:8px"><a role="link" tabindex="0" href="/try-enterprise" type="submit" data-track="true" data-track-intent="Contact Sales" data-zone="same" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_rounded__5toZs button_shadow__fnbqq 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_"><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:8px">Explore Enterprise</div></span></a></div></div></div><div class="grid_cross__fUKA7" data-grid-cross="" style="--cross-row:1;--cross-column:1"><div class="grid_crossLine__BTLQL" style="width:var(--cross-half-size);height:var(--cross-size);border-right-width:var(--guide-width)"></div><div class="grid_crossLine__BTLQL" style="width:var(--cross-size);height:var(--cross-half-size);border-bottom-width:var(--guide-width)"></div></div><div class="grid_cross__fUKA7" data-grid-cross="" style="transform:translateY(1px);--sm-cross-row:3;--lg-cross-row:2;--cross-column:-1"><div class="grid_crossLine__BTLQL" style="width:var(--cross-half-size);height:var(--cross-size);border-right-width:var(--guide-width)"></div><div class="grid_crossLine__BTLQL" style="width:var(--cross-size);height:var(--cross-half-size);border-bottom-width:var(--guide-width)"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:1"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz" style="--x:2;--y:2;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:1"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf" style="--x:2;--y:2;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:1"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7" style="--x:2;--y:2;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:1"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:1;border-right:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:1;--y:2;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM" style="--x:2;--y:2;border-right:none;border-bottom:none"></div></div><div aria-hidden="true" class="grid_guides__XbybQ" data-grid-guides="true"><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:1;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:2;--y:1;border-bottom:none"></div><div aria-hidden="true" class="grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB" style="--x:3;--y:1;border-right:none;border-bottom:none"></div></div></section><div class="grid_gridSystemLazyContent__qAuyX"></div></div></div></main></div><footer class="geist-footer_footer__pIcfx footer_marketingFooterContainer__cJMpP" data-version="v1" data-variant="subtle"><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 style="font-feature-settings:'ss05'" data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/ai">AI</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/enterprise">Enterprise</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 data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/products/observability">Observability</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/products/previews">Previews</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/products/rendering">Rendering</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/security">Security</a></li><li class="geist-footer_item__Hte4A"><a href="/solutions/turborepo" data-zone="vercel-site" 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 href="/docs" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">Docs</a></li><li class="geist-footer_item__Hte4A"><a href="/experts" data-zone="vercel-site" class="link_link__hbWKh link_secondary__F1rqx">Experts</a></li><li class="geist-footer_item__Hte4A"><a href="/guides" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">Guides</a></li><li class="geist-footer_item__Hte4A"><a href="/help" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">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 data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/pricing">Pricing</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/resources">Resources</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 data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/about">About</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/blog">Blog</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/careers">Careers</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/changelog">Changelog</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/contact">Contact Us</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/customers">Customers</a></li><li class="geist-footer_item__Hte4A"><a href="/partners" data-zone="vercel-site" class="link_link__hbWKh link_secondary__F1rqx">Partners</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/legal/privacy-policy">Privacy Policy</a></li><li class="footer_legalButton__eSfwa"><button type="submit" aria-haspopup="true" aria-expanded="false" aria-controls="menu-:R2jbrlklb:" aria-label="Legal" data-testid="footer/legal-button" data-geist-menu-button="" data-is-open="false" id="menu-button-:R2jbrlklbH1:" 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 data-zone="same" class="link_link__hbWKh footer_logoVercel__Yjmd9" href="/home"><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-:R2jrlklb:" type="radio" value="system"/><label for="theme-switch-system-:R2jrlklb:"><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-:R2jrlklb:" type="radio" value="light"/><label for="theme-switch-light-:R2jrlklb:"><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-:R2jrlklb:" type="radio" value="dark"/><label for="theme-switch-dark-:R2jrlklb:"><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><!--$--><!--$--><!--/$--><!--/$--><!--$--><!--/$--><!--$--><!--/$--><!--$--><!--/$--><!--$--><!--$--><!--/$--><!--/$--><span></span><script src="/mktng/_next/static/chunks/webpack-63002c9428def2bd.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"16:\"$Sreact.fragment\"\n17:I[72410,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5791\",\"static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6762\",\"static/chunks/6762-c3b193eb9ad4e6fc.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5667\",\"static/chunks/5667-a1158163f581861a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5417\",\"static/chunks/5417-2148b2486e2fcc64.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9427\",\"static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9831\",\"static/chunks/9831-642be31adc7bdfd0.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6329\",\"static/chunks/6329-efe5c908ba5a87c9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8868\",\"static/chunks/8868-2bd7113852ad65a7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"496\",\"static/chunks/496-4048cba3598bd8aa.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7934\",\"static/chunks/7934-5696252a25d15c70.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1162\",\"static/chunks/app/(default)/(blog)/(root)/blog/page-5123f5b6785cfd11.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"\"]\n18:I[29941,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"sta"])</script><script>self.__next_f.push([1,"tic/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"GracefulHydrationErrorBoundary\"]\n19:I[51357,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl="])</script><script>self.__next_f.push([1,"dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"RootUserProvider\"]\n1a:I[37655,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunk"])</script><script>self.__next_f.push([1,"s/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"RootTeamProvider\"]\n1b:I[63889,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"TelemetryClient\"]\n1c:I[60438,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7"])</script><script>self.__next_f.push([1,"d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"GeistProvider\"]\n1d:I[68209,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\""])</script><script>self.__next_f.push([1,"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"PrefetchCrossZoneLinksProvider\"]\n1e:I[84038,[],\"\"]\n1f:I[91500,[],\"\"]\n20:I[48491,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1432\",\"static/chunks/1432-fd0cde7a188d39f1.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9983\",\"static/chunks/9983-14bed2d32001a072.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1970\",\"static/chunks/1970-9aac2ba5c6d3fb87.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5142\",\"static/chunks/5142-56063046cea785f2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"3314\",\"static/chunks/3314-4f6a9e87b7513851.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1710\",\"static/chunks/1710-097f063cbd982e09.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6329\",\"static/chunks/6329-efe5c908ba5a87c9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"stat"])</script><script>self.__next_f.push([1,"ic/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"618\",\"static/chunks/618-016a9e6296fbc6a5.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1833\",\"static/chunks/1833-a7b1a8f62a48e5b2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"3498\",\"static/chunks/app/(default)/layout-2ce2ffa8091f316e.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"Header\"]\n21:I[39654,[\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5791\",\"static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2743\",\"static/chunks/2743-e27c9ea867a3ccb2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9427\",\"static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9176\",\"static/chunks/app/(default)/(blog)/not-found-aa0ddbca7c163085.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"NotFoundPage\"]\n22:I[75704,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"stati"])</script><script>self.__next_f.push([1,"c/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1432\",\"static/chunks/1432-fd0cde7a188d39f1.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9983\",\"static/chunks/9983-14bed2d32001a072.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1970\",\"static/chunks/1970-9aac2ba5c6d3fb87.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5142\",\"static/chunks/5142-56063046cea785f2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"3314\",\"static/chunks/3314-4f6a9e87b7513851.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1710\",\"static/chunks/1710-097f063cbd982e09.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6329\",\"static/chunks/6329-efe5c908ba5a87c9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"618\",\"static/chunks/618-016a9e6296fbc6a5.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1833\",\"static/chunks/1833-a7b1a8f62a48e5b2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"3498\",\"static/chunks/app/(default)/layout-2ce2ffa8091f316e.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"Footer\"]\n23:I[57698,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbD"])</script><script>self.__next_f.push([1,"hCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"CompatRouterAllowed\"]\n24:\"$Sreact.suspense\"\n25:I[55941,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"stati"])</script><script>self.__next_f.push([1,"c/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"FacePopover\"]\n26:I[84254,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"RootHooks\"]\n28:I[93550,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70"])</script><script>self.__next_f.push([1,"c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"Analytics\"]\n29:I[60878,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/c"])</script><script>self.__next_f.push([1,"hunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"SpeedInsights\"]\n2a:I[54802,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"InpMonitor\"]\n2b:I[68688,[\"5980\",\"static/chunks/5980-7b1043c0a68e5"])</script><script>self.__next_f.push([1,"7ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"ClientScripts\"]\n2c:I[68209,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"stat"])</script><script>self.__next_f.push([1,"ic/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"PrefetchCrossZoneLinks\"]\n2d:I[79848,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeH"])</script><script>self.__next_f.push([1,"FtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"LogoutScreen\"]\n2e:I[91355,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6815\",\"static/chunks/6815-928a4c1eb59571cf.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6747\",\"static/chunks/6747-e82991881bb1f42a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1357\",\"static/chunks/1357-650e16c0f7b1104d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1188\",\"static/chunks/1188-428ff2e45f46cc73.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1355\",\"static/chunks/1355-d2ad8073e86208c3.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7177\",\"static/chunks/app/layout-59f9e4416137fda9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"Toasts\"]\n2f:I[76389,[],\"ClientSegmentRoot\"]\n30:I[96679,[\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl"])</script><script>self.__next_f.push([1,"_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2131\",\"static/chunks/2131-b4c41030672a988d.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"3890\",\"static/chunks/app/(default)/(blog)/layout-06b4ef5260dc0c63.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"default\"]\n32:I[84210,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5791\",\"static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1432\",\"static/chunks/1432-fd0cde7a188d39f1.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5142\",\"static/chunks/5142-56063046cea785f2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1278\",\"static/chunks/1278-f74aae7457da1745.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5417\",\"static/chunks/5417-2148b2486e2fcc64.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9427\",\"static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9831\",\"static/chunks/9831-642be31adc7bdfd0.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2750\",\"static/chunks/2750-c821db01db56c1a8.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"618\",\"static/c"])</script><script>self.__next_f.push([1,"hunks/618-016a9e6296fbc6a5.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"502\",\"static/chunks/app/(default)/(blog)/(root)/layout-83204d2ed9adbb2c.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"BlogNavigation\"]\n35:I[90215,[],\"OutletBoundary\"]\n37:I[90215,[],\"MetadataBoundary\"]\n39:I[90215,[],\"ViewportBoundary\"]\n3b:I[46865,[],\"\"]\n1:HL[\"/mktng/_next/static/media/569ce4b8f30dc480-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/mktng/_next/static/media/93f479601ee12b01-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n3:HL[\"/mktng/_next/static/css/eb29d44192845090.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n4:HL[\"/mktng/_next/static/css/1dd6c798e17a221c.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n5:HL[\"/mktng/_next/static/css/b8495a7e29df64bd.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n6:HL[\"/mktng/_next/static/css/ff5c81bc7d1218a6.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n7:HL[\"/mktng/_next/static/css/018276901f67cffc.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n8:HL[\"/mktng/_next/static/css/d969c48a33096cd1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n9:HL[\"/mktng/_next/static/css/b29d32ce6ecf5773.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\na:HL[\"/mktng/_next/static/css/4391c3778a153b7e.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\nb:HL[\"/mktng/_next/static/css/bbbbb6639a20be2f.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\nc:HL[\"/mktng/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\nd:HL[\"/mktng/_next/static/css/db3dfc7214a1da9a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\ne:HL[\"/mktng/_next/static/css/2d50cde0ea5ca443.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\nf:HL[\"/mktng/_next/static/css/17a72608604c56e1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n10:HL[\"/mktng/_next/static/css/992ee4ccaa0ffe90.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n11:HL[\"/mktng/_next/static/css/2dd6cbe6e06e2936.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n12:HL[\"/mktng/_next/static/css/bb8ab853799c"])</script><script>self.__next_f.push([1,"96c1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n13:HL[\"/mktng/_next/static/css/2168b69293d27eea.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n14:HL[\"/mktng/_next/static/css/44db2da12ad28cd9.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n15:HL[\"/mktng/_next/static/css/98343cb62b517dca.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"style\"]\n27: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(['_trackPageview']);\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,"0:{\"P\":null,\"b\":\"LqJHZcdF4ugyqwZ0OI2Np\",\"p\":\"/mktng\",\"c\":[\"\",\"blog\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"(default)\",{\"children\":[\"(blog)\",{\"children\":[\"(root)\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$16\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/eb29d44192845090.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/1dd6c798e17a221c.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/b8495a7e29df64bd.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/ff5c81bc7d1218a6.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"4\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/018276901f67cffc.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"5\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/d969c48a33096cd1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"6\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/b29d32ce6ecf5773.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"7\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/4391c3778a153b7e.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"8\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/bbbbb6639a20be2f.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"className\":\"__variable_b36163 __variable_49252a\",\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L17\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"var w=window;var good=w.CSS\u0026\u0026CSS.supports('color', 'var(--v)'); try{const i=1} catch(e){good=0}; if(!good \u0026\u0026 (!w.localStorage || !localStorage.getItem('ignore-browser'))) w.location='/old-browser.html'\"},\"id\":\"browser-check\"}]}],[\"$\",\"$L18\",null,{\"as\":\"body\",\"className\":\"tailwind tailwind-no-preflight\",\"children\":[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$L1a\",null,{\"children\":[[\"$\",\"$L1b\",null,{}],[\"$\",\"$L1c\",null,{\"storageKey\":\"zeit-theme\",\"children\":[[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$L1e\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1f\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"link\",\"style-0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"style-1\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/db3dfc7214a1da9a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"style-2\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/bb8ab853799c96c1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[[\"$\",\"$L20\",null,{\"canGrow\":true}],[\"$\",\"$L21\",null,{}],[\"$\",\"$L22\",null,{\"isMarketingPage\":true,\"variant\":\"subtle\"}]]]}]}],[\"$\",\"$L23\",null,{\"children\":[\"$\",\"$24\",null,{\"fallback\":null,\"children\":[\"$\",\"$L25\",null,{}]}]}]]}],[\"$\",\"$L23\",null,{\"children\":[\"$\",\"$L26\",null,{}]}],[[[\"$\",\"$L17\",\"script-sift\",{\"dangerouslySetInnerHTML\":{\"__html\":\"$27\"},\"id\":\"script-sift\"}]],[\"$\",\"$L28\",null,{}],[\"$\",\"$L29\",null,{}],[\"$\",\"$L2a\",null,{}],[\"$\",\"$L2b\",null,{}],[\"$\",\"$L2c\",null,{}]],[\"$\",\"$L2d\",null,{}]]}]}]}],[\"$\",\"$L2e\",null,{}]]}]]}],{\"children\":[\"(default)\",[\"$\",\"$16\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/a9d0e0ecff9bde1a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/db3dfc7214a1da9a.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[[\"$\",\"$L20\",null,{\"canGrow\":true}],[\"$\",\"$L1e\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(default)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1f\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\"}],[\"$\",\"$L22\",null,{\"isMarketingPage\":true,\"variant\":\"subtle\"}]]]}],{\"children\":[\"(blog)\",[\"$\",\"$16\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/2d50cde0ea5ca443.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2f\",null,{\"Component\":\"$30\",\"slots\":{\"children\":[\"$\",\"$L1e\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(default)\",\"children\",\"(blog)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1f\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"link\",\"style-0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/bb8ab853799c96c1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L21\",null,{}]]}]},\"params\":{},\"promise\":\"$@31\"}]]}],{\"children\":[\"(root)\",[\"$\",\"$16\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/17a72608604c56e1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/992ee4ccaa0ffe90.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/2dd6cbe6e06e2936.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/bb8ab853799c96c1.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack geist-soft-reset grid_page__PyNa0 layout_page__OVMht stack_padding__ox8JS\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--banner-padding-t-lg\":\"29px\",\"--banner-padding-b-lg\":\"29px\",\"--banner-padding-t\":\"16px\",\"--banner-padding-b\":\"24px\",\"--stack-flex\":\"initial\",\"--stack-direction\":\"column\",\"--stack-align\":\"stretch\",\"--stack-justify\":\"flex-start\",\"--sm-stack-padding\":\"16px 0px\",\"--md-stack-padding\":\"32px 0px\",\"--lg-stack-padding\":\"90px 0px\",\"--xl-stack-padding\":\"90px 0px\",\"--stack-gap\":\"0px\"},\"children\":[null,[\"$\",\"main\",null,{\"children\":[[\"$\",\"$L32\",null,{}],[\"$\",\"div\",null,{\"className\":\"grid_gridSystemContentWrapper__r3dlj\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid_gridSystem__LtQ2f\",\"style\":{\"--guide-width\":\"$undefined\",\"--max-width\":\"$undefined\",\"--min-width\":\"$undefined\",\"--guide-color\":\"$undefined\",\"--cross-color\":\"$undefined\"},\"children\":[[[\"$\",\"$L1e\",\".0\",{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(default)\",\"children\",\"(blog)\",\"children\",\"(root)\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1f\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\"}],\"$L33\"],[\"$\",\"div\",null,{\"className\":\"grid_gridSystemLazyContent__qAuyX\",\"children\":[]}],null]}]}]]}]]}]]}],{\"children\":[\"blog\",[\"$\",\"$16\",\"c\",{\"children\":[null,[\"$\",\"$L1e\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"(default)\",\"children\",\"(blog)\",\"children\",\"(root)\",\"children\",\"blog\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L1f\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$16\",\"c\",{\"children\":[\"$L34\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/2168b69293d27eea.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/44db2da12ad28cd9.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/mktng/_next/static/css/98343cb62b517dca.css?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L35\",null,{\"children\":\"$L36\"}]]}],{},null]},null]},null]},null]},null]},null],[\"$\",\"$16\",\"h\",{\"children\":[null,[\"$\",\"$16\",\"cQ7lszvGRkOS0ZvTFiqmj\",{\"children\":[[\"$\",\"$L37\",null,{\"children\":\"$L38\"}],[\"$\",\"$L39\",null,{\"children\":\"$L3a\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\"}]]}]]}]]],\"m\":\"$undefined\",\"G\":[\"$3b\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"31:{}\n"])</script><script>self.__next_f.push([1,"3a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, interactive-widget=resizes-content\"}],[\"$\",\"meta\",\"1\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}],[\"$\",\"meta\",\"2\",{\"name\":\"color-scheme\",\"content\":\"dark light\"}]]\n"])</script><script>self.__next_f.push([1,"38:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"Blog - Vercel\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"Blog posts from the Vercel team and community. Discover the latest in web development.\"}],[\"$\",\"link\",\"3\",{\"rel\":\"manifest\",\"href\":\"/site.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, max-image-preview:large\"}],[\"$\",\"meta\",\"5\",{\"name\":\"vercel-flags-api-endpoint\",\"content\":\"/mktng/.well-known/vercel/flags\"}],[\"$\",\"meta\",\"6\",{\"name\":\"vercel-flags-api-endpoint\",\"content\":\"/vercel-site/.well-known/vercel/flags\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://vercel.com/blog\"}],[\"$\",\"meta\",\"8\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"9\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Vercel\"}],[\"$\",\"meta\",\"10\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:title\",\"content\":\"Blog - Vercel\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:description\",\"content\":\"Blog posts from the Vercel team and community. Discover the latest in web development.\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:url\",\"content\":\"https://vercel.com/blog\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:site_name\",\"content\":\"Vercel\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image\",\"content\":\"https://assets.vercel.com/image/upload/q_auto/front/blog/og/Vercel_Blog_OG.png\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Blog - Vercel\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Blog posts from the Vercel team and community. Discover the latest in web development.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://assets.vercel.com/image/upload/q_auto/front/blog/og/Vercel_Blog_OG.png\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon shortcut\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/favicon.ico\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"23\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-57x57.png\",\"sizes\":\"57x57\"}],[\"$\",\"link\",\"24\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-60x60.png\",\"sizes\":\"60x60\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-72x72.png\",\"sizes\":\"72x72\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-76x76.png\",\"sizes\":\"76x76\"}],[\"$\",\"link\",\"27\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-114x114.png\",\"sizes\":\"114x114\"}],[\"$\",\"link\",\"28\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-120x120.png\",\"sizes\":\"120x120\"}],[\"$\",\"link\",\"29\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-144x144.png\",\"sizes\":\"144x144\"}],[\"$\",\"link\",\"30\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-152x152.png\",\"sizes\":\"152x152\"}],[\"$\",\"link\",\"31\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-180x180.png\",\"sizes\":\"180x180\"}],[\"$\",\"link\",\"32\",{\"rel\":\"apple-touch-icon\",\"href\":\"https://assets.vercel.com/image/upload/q_auto/front/favicon/vercel/apple-touch-icon-256x256.png\",\"sizes\":\"256x256\"}]]\n"])</script><script>self.__next_f.push([1,"36:null\n"])</script><script>self.__next_f.push([1,"3c:I[28696,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1012\",\"static/chunks/1012-ef78ce09a4a70c80.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8896\",\"static/chunks/8896-e17c924bab201711.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5791\",\"static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1432\",\"static/chunks/1432-fd0cde7a188d39f1.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5142\",\"static/chunks/5142-56063046cea785f2.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1278\",\"static/chunks/1278-f74aae7457da1745.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5417\",\"static/chunks/5417-2148b2486e2fcc64.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9427\",\"static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9831\",\"static/chunks/9831-642be31adc7bdfd0.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"2750\",\"static/chunks/2750-c821db01db56c1a8.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"618\",\"static/chunks/618-016a9e6296fbc6a5.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"502\",\"static/chunks/app/(default)/(blog)/(root)/layout-83204d2ed9adbb2c.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"ClientAnalyticsButtonLink\"]\n"])</script><script>self.__next_f.push([1,"33:[\"$\",\"section\",\".1,anonymous-trial-button\",{\"aria-hidden\":\"$undefined\",\"className\":\"grid_grid__MIUsj\",\"data-grid\":\"\",\"id\":\"$undefined\",\"ref\":\"$undefined\",\"style\":{\"--sm-grid-rows\":2,\"--lg-grid-rows\":1,\"--sm-grid-columns\":2,\"--lg-grid-columns\":3,\"--sm-height\":\"fit-content\"},\"dashedGuides\":true,\"children\":[[[\"$\",\"div\",null,{\"className\":\"grid_block__lyImu footer_primaryCell__imrUh\",\"data-grid-cell\":\"\",\"ref\":\"$undefined\",\"style\":{\"--sm-grid-row\":\"1 / span 1\",\"--sm-grid-column\":\"1/3\",\"--sm-cell-rows\":1,\"--sm-cell-columns\":2},\"children\":[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"column\",\"--sm-stack-align\":\"center\",\"--md-stack-align\":\"$undefined\",\"--lg-stack-align\":\"flex-start\",\"--xl-stack-align\":\"$undefined\",\"--stack-justify\":\"center\",\"--stack-padding\":\"0px\",\"--stack-gap\":\"24px\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"footer_primaryDescription__FCws1\",\"children\":[[\"$\",\"p\",\"0\",{\"children\":[[\"$\",\"b\",\"0\",{\"children\":\"Ready to deploy? \"}],\"Start building with a free account. Speak to an expert for your \",[\"$\",\"i\",\"2\",{\"children\":\"Pro\"}],\" or \",[\"$\",\"u\",\"4\",{\"children\":\"Enterprise\"}],\" needs.\"]}]]}],[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"row\",\"--stack-align\":\"stretch\",\"--stack-justify\":\"flex-start\",\"--stack-padding\":\"0px\",\"--stack-gap\":\"16px\"},\"children\":[[\"$\",\"$L3c\",\"Start Deploying\",{\"className\":\"\",\"data-track\":true,\"data-track-intent\":\"Get Started\",\"hoverStyle\":\"$undefined\",\"href\":\"/new\",\"normalStyle\":\"$undefined\",\"prefetch\":true,\"prefix\":null,\"shadow\":false,\"shape\":\"rounded\",\"size\":\"medium\",\"suffix\":\"$undefined\",\"track\":{\"event\":\"Clicked a button or link\",\"properties\":{\"click_name\":\"grid_marketing_footer_main_cta\",\"click_value\":\"Start Deploying\"}},\"type\":\"default\",\"isDraft\":false,\"children\":[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"row\",\"--stack-align\":\"center\",\"--stack-justify\":\"flex-start\",\"--stack-padding\":\"0px\",\"--stack-gap\":\"8px\"},\"children\":[\"Start Deploying\",null]}]}],[\"$\",\"$L3c\",\"Contact Sales\",{\"className\":\"\",\"data-track\":true,\"data-track-intent\":\"Contact Sales\",\"hoverStyle\":\"$undefined\",\"href\":\"/contact/sales\",\"normalStyle\":\"$undefined\",\"prefetch\":true,\"prefix\":null,\"shadow\":true,\"shape\":\"rounded\",\"size\":\"medium\",\"suffix\":\"$undefined\",\"track\":{\"event\":\"Clicked a button or link\",\"properties\":{\"click_name\":\"grid_marketing_footer_main_cta\",\"click_value\":\"Contact Sales\"}},\"type\":\"secondary\",\"isDraft\":false,\"children\":[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"row\",\"--stack-align\":\"center\",\"--stack-justify\":\"flex-start\",\"--stack-padding\":\"0px\",\"--stack-gap\":\"8px\"},\"children\":[\"Contact Sales\",null]}]}]]}]]}]}],[\"$\",\"div\",null,{\"className\":\"grid_block__lyImu footer_secondaryCell__hHZGf footer_secondaryCellRenderingCTAAsButton__1_Qqs\",\"data-grid-cell\":\"\",\"ref\":\"$undefined\",\"style\":{\"--sm-grid-row\":\"2 / span 1\",\"--lg-grid-row\":\"1 / span 1\",\"--sm-grid-column\":\"1/3\",\"--lg-grid-column\":\"3/4\",\"--sm-cell-rows\":1,\"--sm-cell-columns\":2,\"--lg-cell-columns\":1,\"overflow\":\"visible\"},\"children\":[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--sm-stack-direction\":\"column\",\"--md-stack-direction\":\"$undefined\",\"--lg-stack-direction\":\"column\",\"--xl-stack-direction\":\"$undefined\",\"--sm-stack-align\":\"center\",\"--md-stack-align\":\"$undefined\",\"--lg-stack-align\":\"flex-start\",\"--xl-stack-align\":\"$undefined\",\"--stack-justify\":\"center\",\"--stack-padding\":\"0px\",\"--sm-stack-gap\":\"16px\",\"--md-stack-gap\":\"16px\",\"--lg-stack-gap\":\"24px\",\"--xl-stack-gap\":\"24px\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"footer_secondaryDescription__AnuHo\",\"children\":[[\"$\",\"p\",\"0\",{\"children\":[[\"$\",\"b\",\"0\",{\"children\":\"Explore Vercel Enterprise\"}],\" with an interactive product tour, trial, or a personalized demo.\"]}]]}],[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"row\",\"--stack-align\":\"center\",\"--sm-stack-justify\":\"center\",\"--md-stack-justify\":\"$undefined\",\"--lg-stack-justify\":\"space-between\",\"--xl-stack-justify\":\"$undefined\",\"--stack-padding\":\"0px\",\"--sm-stack-gap\":\"24px\",\"--md-stack-gap\":\"24px\",\"--lg-stack-gap\":\"8px\",\"--xl-stack-gap\":\"8px\"},\"children\":[null,[[\"$\",\"$L3c\",\"Explore Enterprise\",{\"className\":\"\",\"data-track\":true,\"data-track-intent\":\"Contact Sales\",\"hoverStyle\":\"$undefined\",\"href\":\"/try-enterprise\",\"normalStyle\":\"$undefined\",\"prefetch\":true,\"prefix\":null,\"shadow\":true,\"shape\":\"rounded\",\"size\":\"medium\",\"suffix\":\"$undefined\",\"track\":{\"event\":\"Clicked a button or link\",\"properties\":{\"click_name\":\"grid_marketing_footer_secondary_cta\",\"click_value\":\"Explore Enterprise\"}},\"type\":\"secondary\",\"isDraft\":false,\"children\":[\"$\",\"div\",null,{\"className\":\"stack_stack__iZkUS stack\",\"data-testid\":\"$undefined\",\"data-version\":\"v1\",\"ref\":\"$undefined\",\"style\":{\"--stack-flex\":\"initial\",\"--stack-direction\":\"row\",\"--stack-align\":\"center\",\"--stack-justify\":\"flex-start\",\"--stack-padding\":\"0px\",\"--stack-gap\":\"8px\"},\"children\":[\"Explore Enterprise\",null]}]}]]]}]]}]}],[[\"$\",\"div\",null,{\"className\":\"grid_cross__fUKA7\",\"data-grid-cross\":\"\",\"style\":{\"--cross-row\":1,\"--cross-column\":1},\"children\":[[\"$\",\"div\",null,{\"className\":\"grid_crossLine__BTLQL\",\"style\":{\"width\":\"var(--cross-half-size)\",\"height\":\"var(--cross-size)\",\"borderRightWidth\":\"var(--guide-width)\"}}],[\"$\",\"div\",null,{\"className\":\"grid_crossLine__BTLQL\",\"style\":{\"width\":\"var(--cross-size)\",\"height\":\"var(--cross-half-size)\",\"borderBottomWidth\":\"var(--guide-width)\"}}]]}],[\"$\",\"div\",null,{\"className\":\"grid_cross__fUKA7\",\"data-grid-cross\":\"\",\"style\":{\"transform\":\"translateY(1px)\",\"--sm-cross-row\":3,\"--lg-cross-row\":2,\"--cross-column\":-1},\"children\":[[\"$\",\"div\",null,{\"className\":\"grid_crossLine__BTLQL\",\"style\":{\"width\":\"var(--cross-half-size)\",\"height\":\"var(--cross-size)\",\"borderRightWidth\":\"var(--guide-width)\"}}],[\"$\",\"div\",null,{\"className\":\"grid_crossLine__BTLQL\",\"style\":{\"width\":\"var(--cross-size)\",\"height\":\"var(--cross-half-size)\",\"borderBottomWidth\":\"var(--guide-width)\"}}]]}]]],[[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"grid_guides__XbybQ\",\"data-grid-guides\":true,\"children\":[[\"$\",\"div\",\"0\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz\",\"style\":{\"--x\":1,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"1\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz\",\"style\":{\"--x\":2,\"--y\":1,\"borderRight\":\"none\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"2\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz\",\"style\":{\"--x\":1,\"--y\":2,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"3\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_xsGuide__Xupsz\",\"style\":{\"--x\":2,\"--y\":2,\"borderRight\":\"none\",\"borderBottom\":\"none\"}}]]}],[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"grid_guides__XbybQ\",\"data-grid-guides\":true,\"children\":[[\"$\",\"div\",\"0\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf\",\"style\":{\"--x\":1,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"1\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf\",\"style\":{\"--x\":2,\"--y\":1,\"borderRight\":\"none\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"2\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf\",\"style\":{\"--x\":1,\"--y\":2,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"3\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smGuide__dhwwf\",\"style\":{\"--x\":2,\"--y\":2,\"borderRight\":\"none\",\"borderBottom\":\"none\"}}]]}],[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"grid_guides__XbybQ\",\"data-grid-guides\":true,\"children\":[[\"$\",\"div\",\"0\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7\",\"style\":{\"--x\":1,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"1\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7\",\"style\":{\"--x\":2,\"--y\":1,\"borderRight\":\"none\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"2\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7\",\"style\":{\"--x\":1,\"--y\":2,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"3\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_smdGuide__pWYK7\",\"style\":{\"--x\":2,\"--y\":2,\"borderRight\":\"none\",\"borderBottom\":\"none\"}}]]}],[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"grid_guides__XbybQ\",\"data-grid-guides\":true,\"children\":[[\"$\",\"div\",\"0\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM\",\"style\":{\"--x\":1,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"1\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM\",\"style\":{\"--x\":2,\"--y\":1,\"borderRight\":\"none\",\"borderBottom\":\"$undefined\"}}],[\"$\",\"div\",\"2\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM\",\"style\":{\"--x\":1,\"--y\":2,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"3\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_mdGuide__Kf1OM\",\"style\":{\"--x\":2,\"--y\":2,\"borderRight\":\"none\",\"borderBottom\":\"none\"}}]]}],[\"$\",\"div\",null,{\"aria-hidden\":true,\"className\":\"grid_guides__XbybQ\",\"data-grid-guides\":true,\"children\":[[\"$\",\"div\",\"0\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB\",\"style\":{\"--x\":1,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"1\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB\",\"style\":{\"--x\":2,\"--y\":1,\"borderRight\":\"$undefined\",\"borderBottom\":\"none\"}}],[\"$\",\"div\",\"2\",{\"aria-hidden\":\"true\",\"className\":\"grid_guide__Ei25j grid_dashedGuide__bty9d grid_lgGuide__2OXaB\",\"style\":{\"--x\":3,\"--y\":1,\"borderRight\":\"none\",\"borderBottom\":\"none\"}}]]}]]]}]\n"])</script><script>self.__next_f.push([1,"3d:I[80285,[\"5980\",\"static/chunks/5980-7b1043c0a68e57ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4821\",\"static/chunks/4821-0e9c80024ffd83a9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4313\",\"static/chunks/4313-4c87b86afce2fb20.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"4194\",\"static/chunks/4194-71616f0117651571.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5414\",\"static/chunks/5414-ff47aedd7d7e6d44.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5791\",\"static/chunks/5791-8b93eb27fb5c561b.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7475\",\"static/chunks/7475-4f2857dc25506a25.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8705\",\"static/chunks/8705-f91b9da6777421ab.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6762\",\"static/chunks/6762-c3b193eb9ad4e6fc.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5667\",\"static/chunks/5667-a1158163f581861a.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5041\",\"static/chunks/5041-809cc568e5e0fbc7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6916\",\"static/chunks/6916-ff23e6d31163b0ce.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"5417\",\"static/chunks/5417-2148b2486e2fcc64.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9427\",\"static/chunks/9427-7c5f38ecd8b5018f.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"9831\",\"static/chunks/9831-642be31adc7bdfd0.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"6329\",\"static/chunks/6329-efe5c908ba5a87c9.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"8868\",\"static/chunks/8868-2bd7113852ad65a7.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"496\",\"static/chunks/496-4048cba3598bd8aa.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"7934\",\"static/chunks/7934-5696252a25d15c70.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\",\"1162\",\"static/chunks/app/(default)/(blog)/(root)/blog/page-5123f5b6785cfd11.js?dpl=dpl_3TFeHFtFXPmGbDhCncZ4dWNtdBsG\"],\"BlogPostCategoryPage\"]\n"])</script><script>self.__next_f.push([1,"34:[\"$\",\"$L3d\",null,{\"category\":\"all\",\"initialPosts\":[{\"title\":\"Life of a Vercel request: Navigating the Edge Network\",\"slug\":\"life-of-a-vercel-request-navigating-the-edge-network\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"Vercel’s \",\"marks\":[],\"data\":{}},{\"nodeType\":\"hyperlink\",\"data\":{\"uri\":\"https://vercel.com/blog/framework-defined-infrastructure\"},\"content\":[{\"nodeType\":\"text\",\"value\":\"framework-defined infrastructure\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"text\",\"value\":\" provisions cloud resources while providing full transparency, from the initial build to every incoming request. Developers can track how static assets are distributed globally, functions handle ISR revalidation, and resources manage routing, server-side rendering, and more.\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"\",\"marks\":[],\"data\":{}},{\"nodeType\":\"hyperlink\",\"data\":{\"uri\":\"https://vercel.com/blog/life-of-a-vercel-request-what-happens-when-a-user-presses-enter\"},\"content\":[{\"nodeType\":\"text\",\"value\":\"As users visit your app\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"text\",\"value\":\", granular metrics reveal which resources were leveraged to serve their request. This series unpacks the Vercel Edge Network and associated resource allocation, exploring each stage of a request, and how Vercel streamlines the process.\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"With a clear understanding of these metrics and optimization strategies, you can deliver better user experiences while improving resource consumption and reducing costs.\",\"marks\":[],\"data\":{}}]}]},\"date\":\"2024-11-21\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Dan Fein\",\"vercelUsername\":\"danfein\",\"twitterUsername\":\"dfeinition\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Technical Product Marketer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Vercel acquires Grep to accelerate code search\",\"slug\":\"vercel-acquires-grep\",\"category\":{\"name\":\"Company News\",\"slug\":\"company-news\",\"description\":\"Catch up on the latest news and events at Vercel.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://grep.app/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Grep\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" allows developers to quickly search code across over 500,000 public git repositories. With the acquisition, founder Dan Fox will also be joining Vercel’s AI team \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"to continue building Grep to enhance code search for developers.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-20\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Jared Palmer\",\"vercelUsername\":\"jared\",\"twitterUsername\":\"jaredpalmer\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"VP of Product, AI\",\"bio\":\"Jared Palmer is the creator and founder of Turborepo (acquired by Vercel). He’s also created many popular open-source projects such as Formik and TSDX and is a native New Yorker.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"Turborepo.org\",\"isDraft\":false},{\"name\":\"Dan Fox\",\"vercelUsername\":\"danmfox\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Software Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"AI SDK 4.0\",\"slug\":\"ai-sdk-4-0\",\"category\":{\"name\":\"Engineering\",\"slug\":\"engineering\",\"description\":\"See how we’re building the future for frontend developers.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://sdk.vercel.ai/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"AI SDK\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" is an open-source toolkit for building AI applications with JavaScript and TypeScript. Its unified provider API allows you to use any language model and enables powerful UI integrations into leading web frameworks such as \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Next.js\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" and \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://svelte.dev/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Svelte\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\".\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-18\",\"pixelIcon\":\"ai-sdk\",\"authors\":[{\"name\":\"Lars Grammel\",\"vercelUsername\":\"lgrammel\",\"twitterUsername\":\"lgrammel\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Software Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Jared Palmer\",\"vercelUsername\":\"jared\",\"twitterUsername\":\"jaredpalmer\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"VP of Product, AI\",\"bio\":\"Jared Palmer is the creator and founder of Turborepo (acquired by Vercel). He’s also created many popular open-source projects such as Formik and TSDX and is a native New Yorker.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"Turborepo.org\",\"isDraft\":false},{\"name\":\"Nico Albanese\",\"vercelUsername\":\"nicoalbanese\",\"twitterUsername\":\"nicoalbanese10\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"DX Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Walter Korman\",\"vercelUsername\":\"shaper\",\"twitterUsername\":\"shaper\",\"githubUsername\":\"shaper\",\"vercelian\":true,\"role\":\"$undefined\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Accelerating partner success: Vercel’s new Partner Program benefits\",\"slug\":\"vercel-partner-program-updates\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"At Vercel, we believe in the power of partnership and collaboration to drive innovation and mutual success. One in two sales and project delivery is done in collaboration with our partners. Last month, \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org/conf#sponsors-section\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"over 35 partners\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" sponsored and supported \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"http://nextjs.org/conf\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Next.js Conf\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\"—our annual open-source conference—where over 1,000 people gathered in San Francisco and tens of thousands online from around the world. From championing an open web, \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://machalliance.org/newsroom/mach-alliance-strengthens-position-as-a-technology-leader\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"supporting industry alliances\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", to developing joint features that enhance customer and user experiences, we're achieving more together.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-15\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Jen Chang\",\"vercelUsername\":\"jennshumann\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"VP of Partnerships\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Life of a Vercel request: What happens when a user presses enter\",\"slug\":\"life-of-a-vercel-request-what-happens-when-a-user-presses-enter\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"When developers push code, Vercel’s \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/blog/framework-defined-infrastructure\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"framework-defined infrastructure\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" analyzes the codebase and intelligently provisions cloud resources. When requests come in, Vercel’s infrastructure instantly routes them to the nearest data center over a high-speed, low-latency network, delivering a response right back to the user.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel handles all of this behind the scenes. But understanding how your framework code powers the infrastructure—from deployment to request handling—gives you insight into how Vercel’s components work together, and enables you to further optimize user experiences.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Here’s how Vercel manages requests at every stage.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-13\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Dan Fein\",\"vercelUsername\":\"danfein\",\"twitterUsername\":\"dfeinition\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Technical Product Marketer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Vercel named a Visionary in 2024 Gartner® Magic Quadrant™ for Cloud Application Platforms\",\"slug\":\"vercel-named-a-visionary-in-2024-gartner-magic-quadrant-for-cloud\",\"category\":{\"name\":\"Company News\",\"slug\":\"company-news\",\"description\":\"Catch up on the latest news and events at Vercel.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The Frontend Cloud is designed for developers and teams that care deeply about user experiences. Whether you're serving billions of users or building your first project, the Frontend Cloud helps you remove friction from the development and delivery process. This allows you to focus on building your product instead of managing and configuring the infrastructure required to make it work.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-08\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Malte Ubl\",\"vercelUsername\":\"cramforce\",\"twitterUsername\":\"cramforce\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"CTO, Vercel\",\"bio\":\"Malte is Chief Architect at Vercel. Previously, Malte was a Principal Engineer responsible for Google Search Rendering and Engineering Director for Search on Laptops, Tablets, and Desktop. He is a founder and curator of JSConf EU.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"https://vercel.com\",\"isDraft\":false},{\"name\":\"Paul Staelin\",\"vercelUsername\":\"pstaelin\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Chief Customer Officer, Vercel\",\"bio\":\"$undefined\",\"companyName\":\"Vercel\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"MotorTrend: Shifting into overdrive with Vercel\",\"slug\":\"motortrend-shifting-into-overdrive-with-vercel\",\"category\":{\"name\":\"Customer stories\",\"slug\":\"customers\",\"description\":\"Discover how companies of all sizes and industries are making the Web, faster.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://www.motortrend.com/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"MotorTrend\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\"—a Warner Bros. Discovery company and the world’s leading media company on all things automotive—needed a digital experience as powerful as the vehicles they showcase. Bogged down by a legacy tech stack, their development team faced frustratingly long build times and a cumbersome release process. They knew a complete redesign wasn't the answer—they needed a platform upgrade.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-11-07\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Dan Fein\",\"vercelUsername\":\"danfein\",\"twitterUsername\":\"dfeinition\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Technical Product Marketer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Break the news, not the site: Leading news organizations upgrade their infrastructure ahead of the election\",\"slug\":\"break-the-news-not-the-site\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"When major political developments unfold, millions rush to news websites, putting immense pressure on digital infrastructure. With global audiences, slow-loading websites or crashes during a major event can be catastrophic for a news organization.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-10-31\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Alina Weinstein\",\"vercelUsername\":\"vercelina\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Product Marketing Manager \",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"A deep dive into Hive: Vercel’s builds infrastructure\",\"slug\":\"a-deep-dive-into-hive-vercels-builds-infrastructure\",\"category\":{\"name\":\"Engineering\",\"slug\":\"engineering\",\"description\":\"See how we’re building the future for frontend developers.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Hive is Vercel’s low-level untrusted and ephemeral compute platform—designed to give us the control needed to securely and efficiently manage and run builds. Since November 2023, Hive has powered Vercel’s builds, enabling key improvements like enhanced build machines and a 30% improvement in build performance.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The platform operates on the fundamental assumption that we’re executing potentially malicious code on multi-tenant machines, requiring it to be safe, reliable, performant, and cost-effective. It’s architected to handle multiple use cases and can be composed in different ways depending on what’s needed. Most recently, Hive allowed us to reduce \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/security/secure-compute#build-delay\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"provisioning times for Secure Compute\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" customers from 90 seconds to 5 seconds, while also improving their build speeds.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"We built Hive because we needed finer control and more granular management to continuously improve Vercel’s infrastructure, to meet the growing demands of our customers and to fulfill our vision of delivering the best development experience in the world.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-10-30\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Mariano Cocirio\",\"vercelUsername\":\"mcocirio\",\"twitterUsername\":\"mcocirio\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Product Manager, Builds and Compute\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Guðmundur Bjarni Ólafsson\",\"vercelUsername\":\"gudmundur\",\"twitterUsername\":\"gudmundur\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Principal Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Recap: Next.js Conf 2024\",\"slug\":\"recap-next-js-conf-2024\",\"category\":{\"name\":\"Community\",\"slug\":\"community\",\"description\":\"Explore what’s new from your favorite frameworks and tools.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Our fifth annual \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org/conf\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Next.js Conf\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" finished yesterday, where we shared our research and upcoming improvements to the framework, as well as what's new in the community and Next.js ecosystem. Over 1,000 people in the Next.js community gathered in San Francisco and tens of thousands around the world watched online to see what's new with Next.js.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-10-25\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Lee Robinson\",\"vercelUsername\":\"leerob\",\"twitterUsername\":\"leeerob\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"VP of Product\",\"bio\":\"Lee Robinson is the VP of Product Vercel, where he helps developers build a faster web. He leads the community for the React framework Next.js and is an open-source contributor.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"Vercel.com\",\"isDraft\":false},{\"name\":\"Delba de Oliveira\",\"vercelUsername\":\"delbaoliveira\",\"twitterUsername\":\"delba_oliveira\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"DX Engineer\",\"bio\":\"$undefined\",\"companyName\":\"Vercel\",\"companyWebsite\":\"www.vercel.com\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"Maximizing outputs with v0: From UI generation to code creation\",\"slug\":\"maximizing-outputs-with-v0-from-ui-generation-to-code-creation\",\"category\":{\"name\":\"Engineering\",\"slug\":\"engineering\",\"description\":\"See how we’re building the future for frontend developers.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"v0\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" is a powerful tool for generating high-quality UIs and code, and it's also an educational asset for designing and creating on the web. It leverages deep integrations with libraries and modern frameworks like Next.js and React. Whether you're looking to scaffold a new project, fetch data, or create \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/blog/add-3d-to-your-web-projects-with-v0-and-react-three-fiber\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"3D graphics\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", v0 is designed to meet all your frontend development needs.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"To get the highest quality generations, you need to be able to craft input prompts to guide v0 well. The better you guide v0 and understand its strengths, the more accurate and relevant the responses you'll get. \",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"In this post, we’ll look at how you can get the most out of v0’s core features, UI generation abilities, code generation, and developer support.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"date\":\"2024-10-23\",\"pixelIcon\":\"$undefined\",\"authors\":[{\"name\":\"Peri Langlois\",\"vercelUsername\":\"perilanglois1\",\"twitterUsername\":\"perilanglois\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Product Marketing Manager\",\"bio\":\"Peri is a Product Marketing Manager at Vercel where she focuses on delivering development and collaboration features to users.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Aryaman Khandelwal\",\"vercelUsername\":\"aryamank\",\"twitterUsername\":\"aryamankhawow\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Product Manager, AI\",\"bio\":\"Building v0 and Vercel AI SDK.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"vercel.com\",\"isDraft\":false}],\"isDraft\":false},{\"title\":\"What's new in Svelte 5\",\"slug\":\"whats-new-in-svelte-5\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"With its compiler-first approach, fine-grained reactivity, and ability to integrate with any JavaScript project, Svelte stands apart from other frameworks.\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"At Vercel, we're big fans of Svelte—deeply invested in its success and constantly working to make our platform the best place to build and deploy Svelte apps.\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"paragraph\",\"data\":{},\"content\":[{\"nodeType\":\"text\",\"value\":\"\",\"marks\":[],\"data\":{}},{\"nodeType\":\"hyperlink\",\"data\":{\"uri\":\"https://svelte.dev/blog/svelte-5-is-alive\"},\"content\":[{\"nodeType\":\"text\",\"value\":\"With the arrival of Svelte 5\",\"marks\":[],\"data\":{}}]},{\"nodeType\":\"text\",\"value\":\", let's explore what makes this release exciting.\",\"marks\":[],\"data\":{}}]}]},\"date\":\"2024-10-23\",\"pixelIcon\":\"sparkles\",\"authors\":[{\"name\":\"Alice Alexandra Moore\",\"vercelUsername\":\"alicemoore\",\"twitterUsername\":\"tempoimmaterial\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Content Engineer\",\"bio\":\"Alice Alexandra Moore engineers content at Vercel designed to explain complex tech to any audience. In her free time, she develops games, writes creatively, composes music, and illustrates.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Rich Harris\",\"vercelUsername\":\"rich-harris\",\"twitterUsername\":\"rich_harris\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Creator of Svelte\",\"bio\":\"Creator of Svelte\",\"companyName\":\"Vercel\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false}],\"heroPosts\":[{\"title\":\"How Vercel adopted microfrontends\",\"seoTitle\":\"How Vercel adopted microfrontends\",\"subtitle\":\"Learn how Vercel cut build times and improved developer velocity while maintaining a smooth user experience with microfrontends.\",\"slug\":\"how-vercel-adopted-microfrontends\",\"category\":{\"name\":\"Engineering\",\"slug\":\"engineering\",\"description\":\"See how we’re building the future for frontend developers.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel's main website, once a single large Next.js application, serves both our website visitors and logged-in dashboard. But, as Vercel grew, this setup revealed opportunities for improvement. Build times grew, dependency management became more intricate, and workflows needed optimization. Minor changes triggered full builds, affecting isolated development and CI pipelines.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"It was clear a change was needed.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"showTableOfContents\":\"Disabled\",\"pixelIcon\":\"device-desktop\",\"content\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"By rethinking our architecture, we shifted to vertical microfrontends, leading to a simpler development experience and over a 40% improvement in preview build times and local development compilation. Streamlined dependencies by removing code for the other microfrontends also reduced page weight and boosted end-user performance, with gains in \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/blog/how-core-web-vitals-affect-seo\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Core Web Vitals\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" like Largest Contentful Paint (LCP) and Interaction to Next Paint (INP).\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Building on Vercel's support for microfrontends, this overhaul improved the developer experience (DX) and highlighted areas for further optimization. Through dogfooding a large-scale app migration, our shift revealed new ways to streamline the platform for all users. While this blog shares our journey, it also shows where we can smooth the process for everyone. As we continue refining, we’re also making single applications build faster—enabling even greater DX without compromising end-user performance.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Let's look at how we did it.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Leveraging Turbo\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Our first step was to focus on improving local compilation, build times, and CI workflows. Vercel’s monorepo is powered by \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://turbo.build/repo/docs\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Turborepo\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", which allowed us to optimize tasks with features like \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/monorepos/remote-caching#vercel-remote-cache\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel Remote Cache\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" and \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://turbo.build/repo/docs/reference/run#--affected\"},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"code\"},{\"type\":\"bold\"}],\"value\":\"--affected\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\". Adopting \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://turbo.build/pack/docs\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Turbopack\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" provided a great speed improvement for local development.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"But as we made these improvements, we realized the single-app model was also no longer necessary for Vercel.com. Logical splits within the application meant we could avoid unnecessary work on every build and compile, delivering even more major developer velocity gains.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Weighing a horizontal or vertical split\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Microfrontends offer a way to break down large applications into smaller, independent units, allowing parallel development across product areas and engineering teams. While single applications are cohesive, microfrontends help address scaling issues as both applications and organizations grow. There are two main strategies:\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Vertical microfrontends: \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"Split by path, where each page is handled by a single app\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Horizontal microfrontends: \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"Split by features, where multiple applications run on the same page\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3Qgylh0G3cNO9pWEpsrpDX\",\"type\":\"Entry\",\"createdAt\":\"2024-10-21T18:34:15.201Z\",\"updatedAt\":\"2024-10-22T20:23:08.155Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":14,\"revision\":5,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"mobileAndModeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Microfrontends Vertical Split\",\"lightMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2T6FBTNf6aVZ7ueBP4JQ1O\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:27:37.194Z\",\"updatedAt\":\"2024-10-22T20:23:25.005Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":25,\"revision\":8,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE 1 light mobile\",\"description\":\"Two common approaches to microfrontends: Multiple microfrontends within a single page (horizontal split) or having a single microfrontend manage an entire page (vertical split).\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/2T6FBTNf6aVZ7ueBP4JQ1O/474d26f0d23e1a19832007be23b86169/414w_x_vh-1.png\",\"details\":{\"size\":59898,\"image\":{\"width\":828,\"height\":964}},\"fileName\":\"414w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"48lTU9BrxcPfLRnugHxLie\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:33:44.272Z\",\"updatedAt\":\"2024-10-22T20:23:25.010Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":19,\"revision\":7,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE dark mobile\",\"description\":\"Two common approaches to microfrontends: Multiple microfrontends within a single page (horizontal split) or having a single microfrontend manage an entire page (vertical split).\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/48lTU9BrxcPfLRnugHxLie/94882d7edafa90e933a67666bc894bbc/414w_x_vh.png\",\"details\":{\"size\":62505,\"image\":{\"width\":828,\"height\":964}},\"fileName\":\"414w x vh.png\",\"contentType\":\"image/png\"}}},\"lightDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4ylOV8a1ZxyMDI50y1ivv4\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:29:01.204Z\",\"updatedAt\":\"2024-10-22T19:47:26.309Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":57,\"revision\":9,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vertical Horizontal Split\",\"description\":\"Two common approaches to microfrontends: Multiple microfrontends within a single page (horizontal split) or having a single microfrontend manage an entire page (vertical split).\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/4ylOV8a1ZxyMDI50y1ivv4/6b15dd46e8b4a2cc099cd5f36ca0cea2/1920w_x_vh-1.png\",\"details\":{\"size\":58374,\"image\":{\"width\":1920,\"height\":586}},\"fileName\":\"1920w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"7bgR4NyDD0c8hMNAR9oAER\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:33:25.487Z\",\"updatedAt\":\"2024-10-22T19:47:26.365Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":14,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE Dark Desktop\",\"description\":\"Two common approaches to microfrontends: Multiple microfrontends within a single page (horizontal split) or having a single microfrontend manage an entire page (vertical split).\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/7bgR4NyDD0c8hMNAR9oAER/58740490df41e1424bb51be832f9df09/1920w_x_vh.png\",\"details\":{\"size\":61111,\"image\":{\"width\":1920,\"height\":586}},\"fileName\":\"1920w x vh.png\",\"contentType\":\"image/png\"}}},\"dottedBackground\":true,\"imagePercentageWidth\":100,\"fullWidth\":false,\"isScreenshot\":false,\"noPadding\":false}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"There is no right or wrong answer, and each has its trade-offs. Each approach can deliver substantial benefits depending on the use case. Luca Mezzalira's \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://www.buildingmicrofrontends.com/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"book on microfrontends\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" is a good resource on this topic.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vertical splits offer cohesion, but may cause hard navigations when switching between applications supported by different microfrontends. Techniques like prefetching and APIs like \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://developer.chrome.com/docs/web-platform/prerender-pages\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Chromium’s Speculation Rules\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" can help, but come with limitations, such as increased resource usage and limited browser support.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With horizontal splits, testing, releasing, monitoring, and debugging become more complex, as multiple microfrontends operate on the same page.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"We adopted \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"vertical microfrontends\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"—splitting the app into logical sections users rarely cross—to reduce build times and simplify dependencies, all while maintaining a unified monorepo. \",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3vavESiL1A3SZQ8Lh2aZQV\",\"type\":\"Entry\",\"createdAt\":\"2024-09-30T15:30:03.285Z\",\"updatedAt\":\"2024-10-22T19:47:26.709Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":20,\"revision\":6,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://vercel.com/templates/next.js/microfrontends\",\"buttonCopy\":\"View template\",\"heading\":\"Deploy microfrontends on Vercel\",\"subheading\":\"Vercel makes it easy to deploy vertical microfrontends. Learn whether Next.js Multi-Zones can work for you.\",\"clickEventValue\":\"microfrontends-template\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Early tests showed this approach could halve build times and streamline ownership across both development and production, giving developers the feel of working on a single application.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Our migration path\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The next step was migrating our monolithic frontend app into smaller vertical applications without disrupting development or the user experience. We broke the application down into three core areas:\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"marketing\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"documentation\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"logged-in dashboard\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"These areas were naturally distinct. Users don't frequently cross between them, and they maintain distinct user interfaces, making them ideal for separation.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3DtxrkuYA7wa98mCPPlE09\",\"type\":\"Entry\",\"createdAt\":\"2024-10-22T19:36:36.612Z\",\"updatedAt\":\"2024-10-22T19:47:26.990Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":15,\"revision\":3,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"mobileAndModeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE hard/soft navigations\",\"lightMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"1HXA0CyvSDxAf5SvoSrhMP\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:35:20.215Z\",\"updatedAt\":\"2024-10-22T19:47:26.368Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":14,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Hard and Soft Nav Mobile\",\"description\":\"Users experience soft navigations within a single microfrontend and hard navigations when moving between microfrontends.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/1HXA0CyvSDxAf5SvoSrhMP/a41870d40b8d21046de421a150e9f1c6/414w_x_vh-1.png\",\"details\":{\"size\":41373,\"image\":{\"width\":828,\"height\":888}},\"fileName\":\"414w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"37HvFCL2sCyO2WW091jh8w\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:35:54.712Z\",\"updatedAt\":\"2024-10-22T19:47:26.371Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":13,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE hard soft nav\",\"description\":\"Users experience soft navigations within a single microfrontend and hard navigations when moving between microfrontends.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/37HvFCL2sCyO2WW091jh8w/7e36c149d289a7535873c9c0f1d1a05a/414w_x_vh.png\",\"details\":{\"size\":42778,\"image\":{\"width\":828,\"height\":888}},\"fileName\":\"414w x vh.png\",\"contentType\":\"image/png\"}}},\"lightDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"7Mvh0gOsVNycFIqS0XqNaX\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:36:58.509Z\",\"updatedAt\":\"2024-10-22T19:47:26.374Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":12,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE light mode hard navs\",\"description\":\"Users experience soft navigations within a single microfrontend and hard navigations when moving between microfrontends.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/7Mvh0gOsVNycFIqS0XqNaX/6e0ade444442f13f63e7809e2409a897/1920w_x_vh-1.png\",\"details\":{\"size\":54222,\"image\":{\"width\":1920,\"height\":778}},\"fileName\":\"1920w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"7x49saFhSV9GHYkcd79E1D\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:36:19.300Z\",\"updatedAt\":\"2024-10-22T19:47:26.377Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":12,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE Dark hard soft nav\",\"description\":\"Users experience soft navigations within a single microfrontend and hard navigations when moving between microfrontends.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/7x49saFhSV9GHYkcd79E1D/385a32d043b9a81bf8846fe774a49e3e/1920w_x_vh.png\",\"details\":{\"size\":55254,\"image\":{\"width\":1920,\"height\":778}},\"fileName\":\"1920w x vh.png\",\"contentType\":\"image/png\"}}},\"dottedBackground\":true,\"imagePercentageWidth\":100,\"fullWidth\":false,\"isScreenshot\":false,\"noPadding\":false}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Since we use \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org/\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Next.js\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", we used the \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org/docs/app/building-your-application/deploying/multi-zones\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Next.js Multi-Zones\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" feature, which supports vertical microfrontends.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Incremental migration was a priority for us. We opted to create brand new applications, instead of forking the original codebase. Forking seemed easier on the surface, but would have introduced risks. Shared components like headers, footers, and design systems would need to be duplicated and maintained across multiple repositories, leading to synchronization issues and potential inconsistencies.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"By continuing with the monorepo, and centralizing code into \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"packages\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" within the monorepo, we ensured consistency of the shared components while still easily, gradually breaking out key areas. Tools like \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://turbo.build/repo/docs\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Turborepo\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" and \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://github.com/sverweij/dependency-cruiser\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Dependency Cruiser\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" helped simplify this process.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3BsY7s5U0Vdn5NoKNBpZod\",\"type\":\"Entry\",\"createdAt\":\"2024-10-22T19:36:36.630Z\",\"updatedAt\":\"2024-10-22T19:47:27.007Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"revision\":3,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"modeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Project Split Site Structure\",\"lightVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"1QIp8PqIgjSoTVCONVtXiV\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.427Z\",\"updatedAt\":\"2024-10-22T19:47:26.380Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":18,\"revision\":4,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Project Split Site Structure Light\",\"description\":\"Vercel's monorepo is structured with independent microfrontends in the \\\"apps\\\" folder, while shared packages are promoted for seamless access across all apps.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/1QIp8PqIgjSoTVCONVtXiV/5ef22da8bcbfbfe577177f4c9f4e46ff/1000x_x_vh-1.png\",\"details\":{\"size\":46520,\"image\":{\"width\":1694,\"height\":476}},\"fileName\":\"1000x x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2m7Mx5uuNtb9RdPlSyetLS\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.431Z\",\"updatedAt\":\"2024-10-22T19:47:26.382Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":19,\"revision\":4,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Project Split Site Structure Dark\",\"description\":\"Vercel's monorepo is structured with independent microfrontends in the \\\"apps\\\" folder, while shared packages are promoted for seamless access across all apps.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/2m7Mx5uuNtb9RdPlSyetLS/c375d162d77d094f76f9f5cc7e93fb65/1000x_x_vh.png\",\"details\":{\"size\":46334,\"image\":{\"width\":1694,\"height\":476}},\"fileName\":\"1000x x vh.png\",\"contentType\":\"image/png\"}}},\"isScreenshot\":false,\"noPadding\":false,\"imagePercentageWidth\":100,\"fullWidth\":true}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Using \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/workflow-collaboration/feature-flags\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"feature flags\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", we were able to incrementally route traffic from the still-live monolithic frontend app to the new microfrontends. This allowed us to minimize risk and validate performance improvements before removing the old code. When the new page had been serving traffic for at least a week without error, we removed the code from the existing application, incrementally reducing the dependencies and build times.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2vk8XWVEmooCyTuWVNO0T5\",\"type\":\"Entry\",\"createdAt\":\"2024-10-22T19:36:36.695Z\",\"updatedAt\":\"2024-10-22T21:01:14.163Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":4,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"mobileAndModeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Incremental Migration\",\"lightMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"10DMrXSBJjJ9iVUVFM8U3F\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.434Z\",\"updatedAt\":\"2024-10-22T21:01:14.150Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":14,\"revision\":4,\"locale\":\"en-US\"},\"fields\":{\"title\":\"MFE Incremental Migration\",\"description\":\"During incremental migration, the page exists in both the original frontend monolith and the new microfrontend. Feature flags control routing until the microfrontend version goes fully live.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/10DMrXSBJjJ9iVUVFM8U3F/726ae973390a5823963d37355fdd36bb/414w_x_vh-1.png\",\"details\":{\"size\":35430,\"image\":{\"width\":828,\"height\":938}},\"fileName\":\"414w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"5thSANH8BiqJimflEHTySy\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:38:46.281Z\",\"updatedAt\":\"2024-10-22T21:01:14.154Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":20,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Incremental Migration Mobile Dark\",\"description\":\"During incremental migration, the page exists in both the original frontend monolith and the new microfrontend. Feature flags control routing until the microfrontend version goes fully live.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/5thSANH8BiqJimflEHTySy/3821e043be9c4ec20e348f43d4e6808b/414w_x_vh.png\",\"details\":{\"size\":36013,\"image\":{\"width\":828,\"height\":938}},\"fileName\":\"414w x vh.png\",\"contentType\":\"image/png\"}}},\"lightDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2Qr51vYGJjdGlWCmQT3fiV\",\"type\":\"Asset\",\"createdAt\":\"2024-10-21T18:39:15.587Z\",\"updatedAt\":\"2024-10-22T21:01:14.158Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":15,\"revision\":5,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Incremental Migration Desktop Light\",\"description\":\"During incremental migration, the page exists in both the original frontend monolith and the new microfrontend. Feature flags control routing until the microfrontend version goes fully live.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/2Qr51vYGJjdGlWCmQT3fiV/58da2de543f78e041f213234b69d3af9/1920w_x_vh__19_.png\",\"details\":{\"size\":46162,\"image\":{\"width\":1920,\"height\":686}},\"fileName\":\"1920w x vh (19).png\",\"contentType\":\"image/png\"}}},\"darkDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"6dsZJm0PDuwqEdBoocydSe\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.443Z\",\"updatedAt\":\"2024-10-22T21:01:14.160Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":16,\"revision\":4,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Incremental Migration Desktop Dark\",\"description\":\"During incremental migration, the page exists in both the original frontend monolith and the new microfrontend. Feature flags control routing until the microfrontend version goes fully live.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/6dsZJm0PDuwqEdBoocydSe/034c35948473bdcf9e08d474a6ba3486/1920w_x_vh__18_.png\",\"details\":{\"size\":48065,\"image\":{\"width\":1920,\"height\":686}},\"fileName\":\"1920w x vh (18).png\",\"contentType\":\"image/png\"}}},\"dottedBackground\":true,\"imagePercentageWidth\":100,\"fullWidth\":false,\"isScreenshot\":false,\"noPadding\":false}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With this monorepo setup and vertical split approach, we felt confident and in control. We were able to move very quickly while preserving consistency, reducing build times, and keeping app development simple.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Lessons learned and managing the trade-offs\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"After the successful adoption of microfrontends for Vercel.com, we expanded the same approach to other sites like the \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org/conf\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"2024 Next.js Conf\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" page, which runs as a separate application from \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://nextjs.org\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"nextjs.org\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\". With this infrastructure, we could extract distinct areas into independent applications, speeding up development cycles as the Next.js Conf team and Next.js development teams could iterate quickly and independently.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"That said, there were challenges. We encountered some issues and worked on ensuring performance didn’t regress, specifically using tools like \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/speed-insights\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Speed Insights\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" to monitor real world usage and \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/workflow-collaboration/vercel-toolbar\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel Toolbar\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" for layout shift and interaction timing alerts.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"We recognized early on that testing microfrontends locally and in previews was challenging. Features like \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/workflow-collaboration/draft-mode\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Draft Mode\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" didn't work correctly, and performance bottlenecks—like hard navigations—were known issues. To resolve these issues we adopted strategies likes prefetching and prerendering using Chromium’s Speculation Rules.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"An example of overcoming trade-offs:\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"To reduce the impact of hard navigations, we start by downloading the initial page's resources (JavaScript and CSS) to prime the browser cache as soon as a link becomes visible. This means when a user navigates, those assets load from the cache. However, the page still requires rendering and fetching remaining assets, like HTML.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"We take it a step further by prerendering pages when the user interacts (e.g. tapping a link). This renders the page in the background, including all network requests and processing, so when the user arrives, it feels instantaneous. This approach balances performance with resource usage—only prefetching and prerendering at the right time to avoid overloading the device while still delivering the desired experience.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"7j1HdbXwRjM7GKKV9SmL6v\",\"type\":\"Entry\",\"createdAt\":\"2024-10-22T19:36:36.715Z\",\"updatedAt\":\"2024-10-22T19:47:27.037Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":9,\"revision\":3,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"mobileAndModeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vercel MFE Prefetch/Prerender\",\"lightMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"6KZPUCQfCxJqYDXnaJjZI9\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.446Z\",\"updatedAt\":\"2024-10-22T19:47:26.395Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":9,\"revision\":3,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vercel Prefetch timeline\",\"description\":\"Pages prerender or prefetch on user interaction, delivering smooth navigation while optimizing performance and resource use.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/6KZPUCQfCxJqYDXnaJjZI9/f1a9d8e674a7ae440d21419eddd4e555/414w_x_vh.png\",\"details\":{\"size\":41603,\"image\":{\"width\":828,\"height\":1190}},\"fileName\":\"414w x vh.png\",\"contentType\":\"image/png\"}}},\"darkMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"O8KbDP6GCxamr6kRCvS1q\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.449Z\",\"updatedAt\":\"2024-10-22T19:47:26.398Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"revision\":3,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vercel MFE Timeline mobile dark\",\"description\":\"Pages prerender or prefetch on user interaction, delivering smooth navigation while optimizing performance and resource use.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/O8KbDP6GCxamr6kRCvS1q/7c57c0510cff688594d56ab2aa88bec4/414w_x_vh-1.png\",\"details\":{\"size\":42313,\"image\":{\"width\":828,\"height\":1190}},\"fileName\":\"414w x vh-1.png\",\"contentType\":\"image/png\"}}},\"lightDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"53R5UIonMNlONAeWFzhavl\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.452Z\",\"updatedAt\":\"2024-10-22T19:47:26.400Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"revision\":3,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vercel MFE Timeline desktop light\",\"description\":\"Pages prerender or prefetch on user interaction, delivering smooth navigation while optimizing performance and resource use.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/53R5UIonMNlONAeWFzhavl/5fbcba635b04c1cb76d75da9fac3283f/1920w_x_vh-1.png\",\"details\":{\"size\":36555,\"image\":{\"width\":1920,\"height\":473}},\"fileName\":\"1920w x vh-1.png\",\"contentType\":\"image/png\"}}},\"darkDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"53ulhZmmn4XoE8AZJbKuOk\",\"type\":\"Asset\",\"createdAt\":\"2024-10-22T19:36:36.454Z\",\"updatedAt\":\"2024-10-22T19:47:26.403Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"revision\":3,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Vercel MFE Timeline desktop light\",\"description\":\"Pages prerender or prefetch on user interaction, delivering smooth navigation while optimizing performance and resource use.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/53ulhZmmn4XoE8AZJbKuOk/3c8b9bb8d9d70622946b6d0d5b3d3061/1920w_x_vh.png\",\"details\":{\"size\":37400,\"image\":{\"width\":1920,\"height\":473}},\"fileName\":\"1920w x vh.png\",\"contentType\":\"image/png\"}}},\"dottedBackground\":true,\"imagePercentageWidth\":100,\"fullWidth\":false,\"isScreenshot\":false,\"noPadding\":false}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Looking ahead\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With the improvements in iteration speed, we're doubling down on enhancing microfrontends across the platform. Our focus is on refining routing, streamlining the preview workflow, and optimizing hard navigation performance. We’re also enhancing the dashboard experience and addressing workflow challenges to improve microfrontend development from start to finish.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The shift to vertical microfrontends has greatly improved developer velocity and cut build times. Teams now work more independently while staying aligned through shared packages, creating a system that balances autonomy with unified development.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"As we continue to refine this architecture, we’re excited about its potential. Whether you’re exploring microfrontends—or sticking with a single application—Vercel is committed to ensuring the best possible developer experience.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"7GxmFFnXvycPDCxRAgSYIS\",\"type\":\"Entry\",\"createdAt\":\"2024-09-30T15:54:35.754Z\",\"updatedAt\":\"2024-10-22T19:47:27.071Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":32,\"revision\":7,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://vercel.com/contact/sales\",\"buttonCopy\":\"Contact Us\",\"heading\":\"Learn how microfrontends with Vercel can help your DX\",\"subheading\":\"Running into developer velocity issues scaling your application? Talk to experts who can help you understand whether microfrontends can help improve your DX.\",\"clickEventValue\":\"micro-frontends-contact-sales\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"ogImage\":{\"title\":\"Microfrontends OG Card\",\"description\":\"\",\"url\":\"https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/27UrM0WSjRbMj7Y77ZHoDF/bacf3963f79b495803de3eefe0f67d0e/OG_Card.png\",\"width\":1200,\"height\":628,\"fileName\":\"OG Card.png\",\"contentType\":\"image/png\"},\"ogDescription\":\"Learn how Vercel cut build times and improved developer velocity while maintaining a smooth user experience with microfrontends.\",\"recommended\":false,\"date\":\"2024-10-22\",\"authors\":[{\"name\":\"Mark Knichel\",\"vercelUsername\":\"mknichel\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Software Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Dan Fein\",\"vercelUsername\":\"danfein\",\"twitterUsername\":\"dfeinition\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Technical Product Marketer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Brian Emerick\",\"vercelUsername\":\"brianemerick-vercelcom\",\"twitterUsername\":\"$undefined\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Technical Program Manager\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isLegacyChangelog\":\"$undefined\",\"fullWidthCoverImage\":\"$undefined\",\"fullWidthCoverImageDark\":\"$undefined\",\"noIndex\":\"$undefined\",\"customPage\":\"$undefined\",\"tweetIds\":\"$undefined\",\"exploreCards\":\"$undefined\",\"relatedPosts\":\"$undefined\",\"featuredImage\":\"$undefined\",\"testField123\":\"$undefined\",\"productsInvolved\":\"$undefined\",\"kpi1ImprovementTitle\":\"$undefined\",\"kpi1ImprovementDescription\":\"$undefined\",\"kpi2ImprovementTitle\":\"$undefined\",\"kpi2ImprovementDescription\":\"$undefined\",\"newOgImage\":\"$undefined\",\"logo\":\"$undefined\",\"isDraft\":false},{\"title\":\"v0 plans for teams are here\",\"seoTitle\":\"$undefined\",\"subtitle\":\"Expanding v0’s offering for fast-moving teams and organizations with strict security requirements. \",\"slug\":\"v0-plans-for-teams\",\"category\":{\"name\":\"Company News\",\"slug\":\"company-news\",\"description\":\"Catch up on the latest news and events at Vercel.\",\"isDraft\":false},\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Last October we \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/blog/announcing-v0-generative-ui\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"introduced v0\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\"—a generative user interface system powered by natural language and AI. Users generated over four million designs, creating everything from sophisticated dashboards to polished marketing pages.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Now, \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"v0\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" is like having an expert programmer sitting next to you. It's an assistant that specializes in web technologies and frameworks to help you generate functional code and UI from best practices, migrate or debug existing code, or learn to code for the first time.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Starting today, v0 is available to teams of all sizes, with plans designed to help you collaborate and scale securely. \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"v0 Team\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" and \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"v0 Enterprise\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" plans offer security features like SSO and\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\", for Enterprise,\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" the ability to opt out of data training, while helping you share and reuse knowledge and generations across your whole team.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"showTableOfContents\":\"Disabled\",\"pixelIcon\":\"logo-v0\",\"content\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"ISV5Qv695q7KNVNClMylJ\",\"type\":\"Entry\",\"createdAt\":\"2024-10-15T16:55:05.174Z\",\"updatedAt\":\"2024-10-15T16:55:05.174Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":8,\"revision\":1,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"modeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"v0 logo with background\",\"lightVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4ivWBf1RT18864X9FyViLh\",\"type\":\"Asset\",\"createdAt\":\"2024-10-15T16:55:05.162Z\",\"updatedAt\":\"2024-10-15T16:55:05.162Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":4,\"revision\":1,\"locale\":\"en-US\"},\"fields\":{\"title\":\"v0 logo with background, light mode\",\"description\":\"\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/4ivWBf1RT18864X9FyViLh/6561b715a956ce6100af01f4399fa001/600x300__1_.png\",\"details\":{\"size\":28045,\"image\":{\"width\":1200,\"height\":600}},\"fileName\":\"600x300 (1).png\",\"contentType\":\"image/png\"}}},\"darkVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3CSHPVw6n6ZPBWXZfFycpp\",\"type\":\"Asset\",\"createdAt\":\"2024-10-15T16:55:05.166Z\",\"updatedAt\":\"2024-10-15T16:55:05.166Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":4,\"revision\":1,\"locale\":\"en-US\"},\"fields\":{\"title\":\"v0 logo with background, dark mode\",\"description\":\"\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/3CSHPVw6n6ZPBWXZfFycpp/b499dbf7977ad404be660a892da2100a/600x300.png\",\"details\":{\"size\":28896,\"image\":{\"width\":1200,\"height\":600}},\"fileName\":\"600x300.png\",\"contentType\":\"image/png\"}}},\"isScreenshot\":false,\"noPadding\":true,\"imagePercentageWidth\":100,\"fullWidth\":true}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"v0 helps teams ship faster\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"v0 can elevate everyone's abilities across your organization. Whether you're coding, designing, or strategizing, v0 is your 24/7 companion, transforming good ideas into great web experiences.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Technical support and code generation\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Leverage v0 for debugging, \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://www.v0.dev/chat/cvgVNWjxtnUtw2euMmX2S\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"writing tests\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/BTYi63JuTtK\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"migrations\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", and generating \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/4Tg7Nr01JGY?b=b_HBE88gXAa0u\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"high-quality React UIs\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" with third-party libraries for dynamic applications.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Product and feature planning\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Utilize v0 to \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/cdPht4NYiDz?b=7YwHMdKSHCo\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"plan new features\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" within your web application context and generate corresponding tests, streamlining your development process.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Prototyping, wireframing, and design\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Create advanced \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/Zv2IAWG3MqW?b=EWb9GiC\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"animations\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/H3enEFWMjXy?b=wwqD2IafjAC\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"3D assets\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", and interactive mockups built on your team's tech stack, surpassing standard design tool capabilities for quicker stakeholder buy-in.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Sales demos and landing pages\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Rapidly build SEO-friendly \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/chat/b/H9Tcy1j\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"landing pages\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" or create tailored demos for specific customers.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With v0, you’re giving every member of your team instant access to senior-level Next.js and React expertise. v0 empowers your existing engineers to ship better code faster, bridging knowledge gaps and turning good developers into great ones, while non-technical team members can bring ideas to life faster without knowing how to code.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Make v0 a part of your team\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"We've designed v0 to ensure that your team's collective knowledge isn't trapped in individual minds or buried in forgotten documentation. v0 Projects allow members of your team to set custom instructions for how v0 responds in all chats created within that Project. You can even add your own sources to Projects, allowing v0 to draw from your specific architecture methods, style guides, or documentation.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2Q0ixAgc2REa73KrA9TaY6\",\"type\":\"Asset\",\"createdAt\":\"2024-10-15T16:55:05.169Z\",\"updatedAt\":\"2024-10-15T17:34:04.740Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":11,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"pdf upload v1 (1)\",\"description\":\"You can add PDFs, TXT files, code files, and other documentation as Sources for your Projects to learn from, giving you tailored generations. \",\"file\":{\"url\":\"//videos.ctfassets.net/e5382hct74si/2Q0ixAgc2REa73KrA9TaY6/19dc4125ab0e8b60ed28e438c0200f2a/sources_upload.mp4\",\"details\":{\"size\":1297281},\"fileName\":\"sources upload.mp4\",\"contentType\":\"video/mp4\"}}}},\"content\":[],\"nodeType\":\"embedded-asset-block\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4zuGMoJDprez3VIFiBjbdR\",\"type\":\"Entry\",\"createdAt\":\"2024-10-15T16:55:05.235Z\",\"updatedAt\":\"2024-10-15T16:55:05.235Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":1,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://v0.dev/pricing\",\"buttonCopy\":\"Get started\",\"heading\":\"Explore v0 Team today\",\"subheading\":\"The v0 Team plan starts at $30 per user per month and gives you higher messaging limits, centralized billing on Vercel, and and the ability to share Chats, Blocks, and Projects with your team. \",\"clickEventValue\":\"v0-team\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"v0 Enterprise\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-3\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With v0 Enterprise, you get a collaboration-centric workflow plus additional security features.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Data training controls: \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"Your queries, messages, and uploads are excluded from any \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://v0.dev/faq#what-data-was-v0-trained-on\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"post-training processes\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", ensuring that your proprietary information and development strategies remain confidential and secure.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Single sign-on (SSO): \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\"Team members can use existing organization credentials to access v0, aligning with your existing compliance and security protocols.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Higher rate limits:\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" Members of your team will get higher rate limits, allowing you to make more queries to work on larger, more complex projects. \",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Priority access:\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" Your team will always receive the fastest results when working with v0, you’ll never face concurrent user capacity limits. \",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"wbo0LQRptzyhv21Fdpncp\",\"type\":\"Entry\",\"createdAt\":\"2024-10-15T16:55:05.269Z\",\"updatedAt\":\"2024-10-15T16:55:05.269Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":1,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://vercel.com/contact/sales/v0-enterprise\",\"buttonCopy\":\"Book a demo\",\"heading\":\"Get started with v0 today\",\"subheading\":\"To get started with v0 Enterprise, contact our team for a demo.\",\"clickEventValue\":\"v0ent\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"ogImage\":{\"title\":\"OG Card (9)\",\"description\":\"\",\"url\":\"https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/5uptlwimv2dKuiXVUdUh1A/b4ac23714544bb12a3a870270baede14/OG_Card__9_.png\",\"width\":1200,\"height\":628,\"fileName\":\"OG Card (9).png\",\"contentType\":\"image/png\"},\"ogDescription\":\"v0 Team and Enterprise plans are now available \",\"recommended\":false,\"date\":\"2024-10-15\",\"authors\":[{\"name\":\"Jared Palmer\",\"vercelUsername\":\"jared\",\"twitterUsername\":\"jaredpalmer\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"VP of Product, AI\",\"bio\":\"Jared Palmer is the creator and founder of Turborepo (acquired by Vercel). He’s also created many popular open-source projects such as Formik and TSDX and is a native New Yorker.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"Turborepo.org\",\"isDraft\":false},{\"name\":\"Jueun Grace Yun\",\"vercelUsername\":\"jueungraceyun\",\"twitterUsername\":\"jueungraceyun\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Software Engineer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false},{\"name\":\"Aryaman Khandelwal\",\"vercelUsername\":\"aryamank\",\"twitterUsername\":\"aryamankhawow\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Product Manager, AI\",\"bio\":\"Building v0 and Vercel AI SDK.\",\"companyName\":\"Vercel\",\"companyWebsite\":\"vercel.com\",\"isDraft\":false}],\"isLegacyChangelog\":\"$undefined\",\"fullWidthCoverImage\":\"$undefined\",\"fullWidthCoverImageDark\":\"$undefined\",\"noIndex\":\"$undefined\",\"customPage\":\"$undefined\",\"tweetIds\":\"$undefined\",\"exploreCards\":\"$undefined\",\"relatedPosts\":\"$undefined\",\"featuredImage\":{\"title\":\"v0 logo with background, dark mode\",\"description\":\"\",\"url\":\"https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/3CSHPVw6n6ZPBWXZfFycpp/b499dbf7977ad404be660a892da2100a/600x300.png\",\"width\":1200,\"height\":600,\"fileName\":\"600x300.png\",\"contentType\":\"image/png\"},\"testField123\":\"$undefined\",\"productsInvolved\":\"$undefined\",\"kpi1ImprovementTitle\":\"$undefined\",\"kpi1ImprovementDescription\":\"$undefined\",\"kpi2ImprovementTitle\":\"$undefined\",\"kpi2ImprovementDescription\":\"$undefined\",\"newOgImage\":\"$undefined\",\"logo\":\"$undefined\",\"isDraft\":false},{\"title\":\"Vercel WAF upgrade brings persistent actions, rate limiting, and API control\",\"seoTitle\":\"Vercel WAF upgrade brings persistent actions, rate limiting, and API control\",\"subtitle\":\"New Firewall capabilities reduce effects of DDoS attacks and enhance traffic control\",\"slug\":\"vercel-waf-upgrade-brings-persistent-actions-rate-limiting-and-api-control\",\"category\":\"$undefined\",\"intro\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"At Vercel Ship, \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/blog/introducing-the-vercel-waf\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"we introduced\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" the new \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/security/vercel-waf\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Web Application Firewall (WAF)\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", an application-layer firewall that complements our platform-wide firewall. This enables our customers to implement custom or managed rulesets, such as protection against the OWASP Top 10 risks.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Since its release, Vercel’s WAF has blocked billions of malicious requests, demonstrating its resilience and reliability across a wide variety of use cases, from small startups to large enterprise deployments.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"showTableOfContents\":\"Disabled\",\"pixelIcon\":\"shield-check\",\"content\":{\"data\":{},\"nodeType\":\"document\",\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Today we're announcing:\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Persistent actions\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Block repeat offenders by applying rules across all matching requests for a customizable duration.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Rate limiting\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Set request limits on specific endpoints to prevent API abuse while maintaining performance for legitimate users.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Firewall API\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\": Programmatically control WAF settings to automate security workflows and integrate with third-party tools.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Bringing new enhancements to Vercel Web Application Firewall\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"These improvements further enable Vercel customers to serve desired traffic while taking action against anything else.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel’s Challenge page, originally exclusive to the Vercel WAF, verifies browsers to ensure only legitimate users access applications. This feature is now extended to the broader Vercel Firewall, enhancing automated bot management and DDoS protection across the platform.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"A key advantage of Vercel’s WAF is instant rule propagation. While traditional firewalls may take up to 20 minutes to apply updates globally, leaving applications vulnerable, Vercel’s Edge Network propagates rules worldwide in just 300 milliseconds—securing applications immediately.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Why does this matter? Because attackers look for short gaps in security. The ability to enforce rules instantly cuts off their window of opportunity and ensures your security policies are always active, no matter where the request is coming from.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4fGnfZW9PgxwjrV82MlNpa\",\"type\":\"Entry\",\"createdAt\":\"2024-09-24T17:31:01.941Z\",\"updatedAt\":\"2024-10-02T14:22:45.406Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":29,\"revision\":4,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://vercel.com/templates/vercel-firewall/block-ai-bots-firewall-rule\",\"buttonCopy\":\"Add Firewall Rule\",\"heading\":\"Block AI Bots - Firewall Rule\",\"subheading\":\"Add a custom rule to your project's Firewall to detect common AI bots.\\n\\nThis rule defaults to 'Log.' Change it to 'Deny' to block these bots.\",\"clickEventValue\":\"new_firewall_rule\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Adding persistence to rule actions\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Previously, each request was evaluated individually, even if similar ones had been blocked moments before. Now, with \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/security/vercel-waf/custom-rules#persistent-actions\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"persistent actions\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", rules are applied to all matching requests for a customizable duration. This enhancement allows your firewall to remember malicious behavior, blocking it earlier in the lifecycle and preventing requests from consuming Vercel Edge resources unnecessarily.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Persistent actions are critical in defending against repeat offenders. Instead of wasting time and resources on redundant evaluations, Vercel’s WAF blocks threats as soon as they’re identified. This keeps your application efficient and focused on delivering for real users.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"IVHp00WqDYuoL6GcCtiWo\",\"type\":\"Entry\",\"createdAt\":\"2024-10-02T14:11:31.922Z\",\"updatedAt\":\"2024-10-02T14:22:45.423Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"revision\":2,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"mobileAndModeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Per-request vs. Persistent actions\",\"lightMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4M7DuwySGX2iKCPkyBIr8c\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:11.929Z\",\"updatedAt\":\"2024-10-02T14:22:45.147Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Per-request vs. Persistent actions Mobile-Light\",\"description\":\"With persistent actions enabled, edge requests are processed earlier in the lifecycle, bypassing both usage metrics and WAF evaluation entirely.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/4M7DuwySGX2iKCPkyBIr8c/ca6546817ea6c2666a93a6536daa1eb2/Mobile-Light.png\",\"details\":{\"size\":18271,\"image\":{\"width\":414,\"height\":537}},\"fileName\":\"Mobile-Light.png\",\"contentType\":\"image/png\"}}},\"darkMobileVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"30Cr3jdNDlaQUnj5GfWNHH\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:17.290Z\",\"updatedAt\":\"2024-10-02T14:22:45.150Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":8,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Per-request vs. Persistent actions\",\"description\":\"With persistent actions enabled, edge requests are processed earlier in the lifecycle, bypassing both usage metrics and WAF evaluation entirely.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/30Cr3jdNDlaQUnj5GfWNHH/e7ab5e5d4b76ff9b2e6caf5a41838070/Mobile-Dark.png\",\"details\":{\"size\":18481,\"image\":{\"width\":414,\"height\":537}},\"fileName\":\"Mobile-Dark.png\",\"contentType\":\"image/png\"}}},\"lightDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2zCkZ1l9eAb94sCiD7hR8J\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:21.211Z\",\"updatedAt\":\"2024-10-02T14:22:45.153Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":7,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Mobile-Light\",\"description\":\"With persistent actions enabled, edge requests are processed earlier in the lifecycle, bypassing both usage metrics and WAF evaluation entirely.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/2zCkZ1l9eAb94sCiD7hR8J/8d3743f6a4d26d7c85c6f3c7fd4f3c38/Light_-_1920x_1178.png\",\"details\":{\"size\":40295,\"image\":{\"width\":1920,\"height\":792}},\"fileName\":\"Light - 1920x 1178.png\",\"contentType\":\"image/png\"}}},\"darkDesktopVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4M9kG0rz7iu36hpXx0cZ14\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:25.911Z\",\"updatedAt\":\"2024-10-02T14:22:45.156Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Dark - 1920x 1179\",\"description\":\"With persistent actions enabled, edge requests are processed earlier in the lifecycle, bypassing both usage metrics and WAF evaluation entirely.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/4M9kG0rz7iu36hpXx0cZ14/a4f27ca52acb2f0236e9ec739e33d479/Dark_-_1920x_1179.png\",\"details\":{\"size\":40992,\"image\":{\"width\":1920,\"height\":792}},\"fileName\":\"Dark - 1920x 1179.png\",\"contentType\":\"image/png\"}}},\"dottedBackground\":true,\"imagePercentageWidth\":100,\"fullWidth\":false,\"isScreenshot\":false,\"noPadding\":false}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Rate limiting to control request frequency\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With the growth of API-first architectures, controlling the flow of traffic is more important than ever. \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/security/vercel-waf/rate-limiting\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Rate limiting\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" is now \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/changelog/vercel-waf-rate-limiting-now-generally-available\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"generally available\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\" in Vercel’s WAF, allowing you to set precise request limits for specific endpoints. This means you can prevent API abuse without disrupting the experience for legitimate users.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Persistent actions can be combined with rate limiting, allowing you to quickly block bad actors once identified, reducing resource strain efficiently.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"You can set up both per-endpoint and general API rules for better traffic control. For example:\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"/api/user\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" allows 5 requests per minute\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"},{\"data\":{},\"content\":[{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"/api/*\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" allows 100 requests per minute\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}],\"nodeType\":\"list-item\"}],\"nodeType\":\"unordered-list\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Requests containing \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"/api\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\" would first be checked against \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"/api/user\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\". If the limit is exceeded, the action (e.g., log, block, challenge, or deny) would be applied immediately. If the request passes, it would then be checked against \",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[{\"type\":\"code\"}],\"value\":\"/api/*\",\"nodeType\":\"text\"},{\"data\":{},\"marks\":[],\"value\":\", and the action would be triggered if that limit is exceeded.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"This layered approach provides precise control over specific endpoints while enforcing broader API limits.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2NL0bMEKlc59quiTTyWC6o\",\"type\":\"Entry\",\"createdAt\":\"2024-10-02T14:22:45.440Z\",\"updatedAt\":\"2024-10-02T14:22:45.440Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":6,\"revision\":1,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"modeDependentMedia\"}},\"locale\":\"en-US\"},\"fields\":{\"title\":\"Rate Limiting\",\"lightVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"4NCRulFX2koPWmjckJlp8S\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:44.027Z\",\"updatedAt\":\"2024-10-02T14:22:45.159Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Rate limiting light mode\",\"description\":\"Granular rate limiting configuration to set actions, algorithms, time windows, request limits, and tracking keys, allowing precise control of traffic flow and safeguarding your APIs.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/4NCRulFX2koPWmjckJlp8S/6169f3d5ebe55612043a6e1f7f5e3356/Rate_Limit_-_Light.png\",\"details\":{\"size\":118950,\"image\":{\"width\":2400,\"height\":1256}},\"fileName\":\"Rate Limit - Light.png\",\"contentType\":\"image/png\"}}},\"darkVersion\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"3mQcM10HGxdtOLW8Bnv389\",\"type\":\"Asset\",\"createdAt\":\"2024-10-02T14:11:47.866Z\",\"updatedAt\":\"2024-10-02T14:22:45.161Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":2,\"locale\":\"en-US\"},\"fields\":{\"title\":\"Rate limiting dark mode\",\"description\":\"Granular rate limiting configuration to set actions, algorithms, time windows, request limits, and tracking keys, allowing precise control of traffic flow and safeguarding your APIs.\",\"file\":{\"url\":\"//images.ctfassets.net/e5382hct74si/3mQcM10HGxdtOLW8Bnv389/42da05730436490dcb74ea67af5a560d/Rate_Limit_-_Dark.png\",\"details\":{\"size\":227323,\"image\":{\"width\":2400,\"height\":1256}},\"fileName\":\"Rate Limit - Dark.png\",\"contentType\":\"image/png\"}}},\"isScreenshot\":true,\"noPadding\":true}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[{\"type\":\"bold\"}],\"value\":\"Programmatic control with the Firewall API\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"With the new \",\"nodeType\":\"text\"},{\"data\":{\"uri\":\"https://vercel.com/docs/rest-api/endpoints/security\"},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Firewall API\",\"nodeType\":\"text\"}],\"nodeType\":\"hyperlink\"},{\"data\":{},\"marks\":[],\"value\":\", you can now programmatically control WAF settings, automating your security workflows and integrating with third-party tools. This API lets you automatically adjust rules based on real-time traffic, helping you stay agile as conditions change.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"For instance, if you have your own intelligence feeds or anomaly detection systems, you could programmatically create rules without any manual intervention. This level of automation is critical for teams running large-scale applications, providing flexibility and peace of mind.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"The API covers the full range of Firewall features, so you can manage your WAF even when you’re not actively monitoring it. This is especially valuable for teams responsible for mission-critical applications that can’t afford downtime.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Why Vercel’s approach is different\",\"nodeType\":\"text\"}],\"nodeType\":\"heading-2\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"What sets Vercel apart is the seamless integration of security with development. Unlike traditional WAF solutions that slow down deployment or require complex setups, Vercel’s WAF fits naturally into your development workflow. Security shouldn’t be a burden—it should work for you, not against you.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"Vercel’s WAF is designed for speed and flexibility. Deploy security rules instantly and manage them programmatically. This means your team can focus on what matters: building, deploying, and iterating quickly, while knowing your app is protected from threats.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"At Vercel, our goal is a web that’s secure by default. These WAF enhancements are a key part of that vision, ensuring you have the control and protection you need to keep your application fast, secure, and focused on serving real users.\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"},{\"data\":{\"target\":{\"metadata\":{\"tags\":[],\"concepts\":[]},\"sys\":{\"space\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"Space\",\"id\":\"e5382hct74si\"}},\"id\":\"2mg8PxNb0mPbGsH5SHzSFV\",\"type\":\"Entry\",\"createdAt\":\"2024-10-02T14:21:02.733Z\",\"updatedAt\":\"2024-10-02T14:22:45.475Z\",\"environment\":{\"sys\":{\"id\":\"master\",\"type\":\"Link\",\"linkType\":\"Environment\"}},\"publishedVersion\":10,\"revision\":2,\"contentType\":{\"sys\":{\"type\":\"Link\",\"linkType\":\"ContentType\",\"id\":\"blogInlineCta\"}},\"locale\":\"en-US\"},\"fields\":{\"url\":\"https://vercel.com/templates/vercel-firewall/rate-limit-api-requests-firewall-rule\",\"buttonCopy\":\"Add Firewall Rule\",\"heading\":\"Rate Limit API Requests - Firewall Rule\",\"subheading\":\"Add a custom rule to your project's Firewall to rate limit API requests.\\n\\nThis rule defaults to 'Log.' Change it to 'Deny' to actually block these requests.\",\"clickEventValue\":\"new_api_rate_limit_firewall_rule\",\"icon\":\"VercelTriangleFilled\"}}},\"content\":[],\"nodeType\":\"embedded-entry-block\"},{\"data\":{},\"content\":[{\"data\":{},\"marks\":[],\"value\":\"\",\"nodeType\":\"text\"}],\"nodeType\":\"paragraph\"}]},\"ogImage\":{\"title\":\"Vercel WAF updates OG image\",\"description\":\"\",\"url\":\"https://assets.vercel.com/image/upload/contentful/image/e5382hct74si/3P1u5oBLUSrnDGpdYJ7so1/c3f62274288f2e4cbdb67636f86a889c/vercel-waf-updates-og-image.png\",\"width\":1200,\"height\":628,\"fileName\":\"vercel-waf-updates-og-image.png\",\"contentType\":\"image/png\"},\"ogDescription\":\"New capabilities reduce effects of DDoS attacks and enhance traffic control\",\"recommended\":false,\"date\":\"2024-10-02\",\"authors\":[{\"name\":\"Dan Fein\",\"vercelUsername\":\"danfein\",\"twitterUsername\":\"dfeinition\",\"githubUsername\":\"$undefined\",\"vercelian\":true,\"role\":\"Sr. Technical Product Marketer\",\"bio\":\"$undefined\",\"companyName\":\"$undefined\",\"companyWebsite\":\"$undefined\",\"isDraft\":false}],\"isLegacyChangelog\":\"$undefined\",\"fullWidthCoverImage\":\"$undefined\",\"fullWidthCoverImageDark\":\"$undefined\",\"noIndex\":\"$undefined\",\"customPage\":\"$undefined\",\"tweetIds\":\"$undefined\",\"exploreCards\":\"$undefined\",\"relatedPosts\":\"$undefined\",\"featuredImage\":\"$undefined\",\"testField123\":\"$undefined\",\"productsInvolved\":\"$undefined\",\"kpi1ImprovementTitle\":\"$undefined\",\"kpi1ImprovementDescription\":\"$undefined\",\"kpi2ImprovementTitle\":\"$undefined\",\"kpi2ImprovementDescription\":\"$undefined\",\"newOgImage\":\"$undefined\",\"logo\":\"$undefined\",\"isDraft\":false}],\"isDraft\":false}]\n"])</script></body></html>