CINXE.COM
Build with Framework Agnostic Platform Primitives | Netlify
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><meta name="generator" content="Astro v4.16.13"><!-- Page information --><title>Build with Framework Agnostic Platform Primitives | Netlify</title><meta name="description" content="Netlify's platform primitives provide developers advanced controls to own, create, and manage high-performing websites without being limited by any single framework."><link rel="canonical" href="https://www.netlify.com/platform/primitives/"><!-- Favicons --><link rel="icon" href="/favicon/favicon.ico" sizes="32x32"><link rel="icon" href="/favicon/icon.svg" type="image/svg+xml"><link rel="apple-touch-icon" href="/favicon/apple-touch-icon.png"><link rel="manifest" href="/site.webmanifest" crossorigin="use-credentials"><meta name="apple-mobile-web-app-title" content="Netlify"><meta name="application-name" content="Netlify"><meta name="theme-color" content="#ffffff"><!-- Open Graph meta tags --><meta property="og:type" content="website"><meta property="og:title" content="Build with Framework Agnostic Platform Primitives | Netlify"><meta property="og:description" content="Netlify's platform primitives provide developers advanced controls to own, create, and manage high-performing websites without being limited by any single framework."><meta property="og:image" content="https://cdn.sanity.io/images/o0o2tn5x/marketing/df780b0f0bfe722f32abf995ddd98062add2bdc4-1200x630.png"><!-- Twitter meta tags --><meta name="twitter:card" content="summary_large_image"><meta property="twitter:domain" content="netlify.com"><meta name="twitter:title" content="Build with Framework Agnostic Platform Primitives | Netlify"><meta name="twitter:description" content="Netlify's platform primitives provide developers advanced controls to own, create, and manage high-performing websites without being limited by any single framework."><meta name="twitter:image" content="https://cdn.sanity.io/images/o0o2tn5x/marketing/df780b0f0bfe722f32abf995ddd98062add2bdc4-1200x630.png"><!-- Page assets --><link rel="preload" href="/fonts/pacaembu/PacaembuNetlify-Variable.woff2" as="font" type="font/woff2" crossorigin=""><link rel="preload" href="/fonts/mulish/MulishVar-latin.woff2" as="font" type="font/woff2" crossorigin=""><!-- Third-party verification --><meta name="slack-app-id" content="A05P27DR8C8"><!-- Third-party scripts --><script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('consent', 'default', { ad_storage: 'denied', analytics_storage: 'denied', functionality_storage: 'denied', personalization_storage: 'denied', security_storage: 'denied', region: [ 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'EL', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'UK', ], }); gtag('consent', 'default', { ad_storage: 'granted', analytics_storage: 'granted', functionality_storage: 'granted', personalization_storage: 'granted', security_storage: 'granted', }); function OptanonWrapper() { if (!OneTrust.IsAlertBoxClosed()) { document.body.classList.add('onetrust-alert-box-open'); } OneTrust.OnConsentChanged(() => { if (OneTrust.IsAlertBoxClosed()) { document.body.classList.remove('onetrust-alert-box-open'); } }); } </script> <script>(function(){const id = "GTM-T7WNFLD"; (function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', id); })();</script><!-- Qualified --><script> (function (w, q) { w['QualifiedObject'] = q; w[q] = w[q] || function () { (w[q].q = w[q].q || []).push(arguments); }; })(window, 'qualified'); </script> <script async src="https://js.qualified.com/qualified.js?token=FvGWn26rk1tuEjBR"></script> <!-- End Qualified --><link rel="stylesheet" href="/_astro/convince-your-boss.63oO-y1F.css"> <link rel="stylesheet" href="/_astro/_slug_.C3dpn2EX.css"> <link rel="stylesheet" href="/_astro/_guideSlug_.Dvk726Qh.css"> <style>.card[data-astro-cid-dohjnao5]{--card-padding: var(--space-m);padding:var(--card-padding-block, var(--card-padding, var(--space-m))) var(--card-padding-inline, var(--card-padding, var(--space-m)));color:var(--card-text, var(--color-text-1));background:var(--card-bg, var(--color-bg-1));border-radius:var(--card-radius, var(--radius-xl));box-shadow:var(--card-shadow, var(--shadow-light));border:1px solid var(--card-border-color, var(--neutral-light-100));height:100%;overflow:hidden;position:relative}.card[data-astro-cid-dohjnao5] :where(.heading,.ingredient){margin-inline:unset}:where([data-theme=dark])[data-astro-cid-dohjnao5] .card[data-astro-cid-dohjnao5]:not([data-theme]){--card-bg: var(--neutral-dark-600)}.card[data-astro-cid-dohjnao5][data-options*=full-width-media]:has(:first-child>:where(img,.yt-wrapper)){padding-block-start:0}.card[data-astro-cid-dohjnao5][data-options*=full-width-media]:has(:last-child>:where(img,.yt-wrapper)){padding-block-end:0}.card[data-astro-cid-dohjnao5][data-options*=full-width-media] :where(img,.yt-wrapper){--_padding: var(--card-padding, var(--space-m));width:calc(100% + 2 * var(--_padding));transform:translate(calc(-1 * var(--_padding)));max-inline-size:unset}.card[data-astro-cid-dohjnao5][data-options*=repel-last-element]>:nth-last-child(2){margin-block-end:auto}.card[data-astro-cid-dohjnao5] .heading>a:after{content:"";position:absolute;inset:0}.card[data-astro-cid-dohjnao5] .heading>a{text-decoration:none}.pancake[data-astro-cid-5mutinvq]{color:var(--pancake-color-text, var(--color-text-1));background-color:var(--pancake-color-bg, var(--color-bg-1));position:relative}.pancake-margin-top-override[data-astro-cid-5mutinvq]{margin-block-start:var(--margin-block-start)}.pancake-content[data-astro-cid-5mutinvq]{--stack-space: var(--space-2xl);position:relative}.pancake-background-clip[data-astro-cid-5mutinvq]{padding-block-end:0}.pancake-background-clip[data-astro-cid-5mutinvq] .ingredient:last-of-type{position:relative}.pancake-background-clip[data-astro-cid-5mutinvq] .ingredient:last-of-type>*{z-index:0}.pancake-background-clip[data-astro-cid-5mutinvq] .ingredient:last-of-type:before{position:absolute;top:50%;content:"";width:100%;height:50%;background:#fff}.pancake-border-bottom[data-astro-cid-5mutinvq]{border-bottom:1px solid var(--neutral-light-200)} </style> <link rel="stylesheet" href="/_astro/_guideSlug_.DvROZQDN.css"> <style>.hubspot-form-wrapper{--center-max: 35rem}.hs-form-booleancheckbox-display{display:flex;align-items:baseline;gap:var(--space-2xs)}.hs-form :where(.legal-consent-container,[class^=hs_notice_and_consent]){font-size:var(--step--1)}.hs-form .legal-consent-container .hs-form-booleancheckbox-display>span{margin-left:0}.hs-form-required{margin-inline-start:.1em;color:var(--color-text-invalid)}.hs-error-msg{font-size:.8em;color:var(--color-text-invalid)}.hs_error_rollup .hs-error-msgs{font-size:.8em;line-height:normal;color:var(--color-text-invalid);background-color:var(--color-bg-invalid);padding:var(--space-xs) var(--space-s);border-radius:var(--radius-m)}.hs-error-msg{display:block}.hs-form-field:not([hidden]){display:grid;gap:var(--space-3xs)}.hs-submit input{width:100%} [data-astro-cid-patnjmll][data-variant=encapsulated]{--size: 3rem;--icon-size: 1.25rem;display:grid;place-items:center;color:var(--neutral-light-800);background-color:var(--blue-000);width:var(--size);height:var(--size);border-radius:var(--radius-circle)} .c-badge-group[data-astro-cid-mh4d3t3h]{--cluster-gap: var(--card-badge-gap, 12px)}.label[data-astro-cid-mh4d3t3h]{font-weight:700}.card-container[data-astro-cid-ccoymqwb]{display:flex}lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer;max-width:720px}lite-youtube:before{content:attr(data-title);display:block;position:absolute;top:0;background-image:linear-gradient(180deg,#000000ab,#0000008a 14%,#00000026 54%,#0000000d 72%,#0000 94%);height:99px;width:100%;font-family:YouTube Noto,Roboto,Arial,Helvetica,sans-serif;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);font-size:18px;padding:25px 20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box}lite-youtube:hover:before{color:#fff}lite-youtube:after{content:"";display:block;padding-bottom:56.25%}lite-youtube>iframe{width:100%;height:100%;position:absolute;top:0;left:0;border:0}lite-youtube>.lty-playbtn{display:block;width:100%;height:100%;background:no-repeat center/68px 48px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 68 48"><path d="M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z" fill="red"/><path d="M45 24 27 14v20" fill="white"/></svg>');position:absolute;cursor:pointer;z-index:1;filter:grayscale(100%);transition:filter .1s cubic-bezier(0,0,.2,1);border:0}lite-youtube:hover>.lty-playbtn,lite-youtube .lty-playbtn:focus{filter:none}lite-youtube.lyt-activated{cursor:unset}lite-youtube.lyt-activated:before,lite-youtube.lyt-activated>.lty-playbtn{opacity:0;pointer-events:none}.lyt-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}lite-youtube>iframe{all:unset!important;width:100%!important;height:100%!important;position:absolute!important;inset:0!important;border:0!important}.yt-wrapper[data-astro-cid-aomsn35f]{width:100%;position:relative;isolation:isolate}lite-youtube[data-astro-cid-aomsn35f]{border-radius:var(--border-radius);border:1px solid var(--border-color);max-width:none}lite-youtube[data-astro-cid-aomsn35f]:before{display:none}lite-youtube[data-astro-cid-aomsn35f]>.lty-playbtn{position:absolute;inset:0;margin:auto;height:auto;filter:none;width:min(100px,12vw);aspect-ratio:1;isolation:isolate;background-color:var(--neutral-light-000);background-size:40%;background-repeat:no-repeat;background-position:calc(50% + 2px) center;border-radius:var(--radius-circle);background-image:var(--play-btn-svg);box-shadow:0 0 15px var(--neutral-dark-200);transform:scale(1);transition:transform .4s var(--ease-out)}.yt-wrapper[data-astro-cid-aomsn35f][data-slotted] .lty-playbtn{opacity:0}lite-youtube[data-astro-cid-aomsn35f]:hover .lty-playbtn{transform:scale(1.05)}.heading[data-astro-cid-u4qoyrkz]{max-width:var(--heading-max, 60ch);line-height:var(--line-height-heading)}.text-center[data-astro-cid-u4qoyrkz] .heading[data-astro-cid-u4qoyrkz]{margin-inline:auto}span[data-astro-cid-u4qoyrkz]{display:block}.text-center[data-astro-cid-u4qoyrkz] .heading-eyebrow[data-astro-cid-u4qoyrkz]{margin-inline:auto}.heading-eyebrow[data-astro-cid-u4qoyrkz]{width:fit-content}.heading-eyebrow[data-astro-cid-u4qoyrkz]+[data-astro-cid-u4qoyrkz]{margin-top:var(--space-xs)}.heading[data-astro-cid-u4qoyrkz]>a[data-astro-cid-u4qoyrkz]{text-decoration:none;display:inline-block}.heading[data-astro-cid-u4qoyrkz]:is(p){line-height:var(--line-height)} img[data-astro-cid-jbhojhg7]{width:100%} .logo-marquee[data-astro-cid-h2jlyvcc]{--_speed: 60s;--_gap: 3rem;display:flex;flex-wrap:nowrap;overflow:hidden;gap:var(--_gap);-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,0) 0%,rgba(0,0,0,1) 15%,rgba(0,0,0,1) 85%,rgba(0,0,0,0) 100%)}.logo-marquee[data-astro-cid-h2jlyvcc] :is(picture,img,svg){width:clamp(8rem,1.2vw,10rem);height:100%;max-height:var(--logo-height, 4rem);object-fit:contain}.logo-marquee[data-astro-cid-h2jlyvcc] ul[data-astro-cid-h2jlyvcc]{flex-shrink:0;display:flex;align-items:center;justify-content:space-around;flex-wrap:nowrap;gap:var(--_gap);min-width:100%;animation:ticker var(--_speed) linear infinite}.logo-marquee[data-astro-cid-h2jlyvcc]:where(.reverse) ul[data-astro-cid-h2jlyvcc]{animation-direction:reverse}@keyframes ticker{0%{transform:translate(calc(var(--_gap) * -1))}to{transform:translate(calc(-100% - var(--_gap) * 2))}} .logo-wall[data-astro-cid-6y2sa4q5]{--grid-min: 10rem;--grid-gap: 2rem;--grid-justify: center;display:grid;grid-template-columns:repeat(var(--repeat, var(--count, 6)),1fr);gap:clamp(var(--space-m),4vw,var(--space-xl));margin-inline:auto;inline-size:fit-content}.logo-wall[data-astro-cid-6y2sa4q5] :is(picture,img,svg){width:min(10rem,100%);height:min(5rem,100%);aspect-ratio:5/3;object-fit:contain}@media (max-width: 30rem){.sm-wrap[data-astro-cid-6y2sa4q5]{--repeat: 3;padding-inline:var(--space-l)}} .prose[data-astro-cid-cnvtppup]{max-width:var(--prose-max-width, 100%)} .cta-group[data-astro-cid-sc466a3x]{align-items:var(--ctas-align, center)}.button[data-astro-cid-sc466a3x]{width:var(--cta-min-width)} .cta-arrow-link:hover{--_icon-x: 2px}.cta-arrow-link svg{--button-icon-size: .7em;transform:rotate(var(--_icon-rotate, 0)) translate(var(--_icon-x, 0));transition:transform .2s var(--ease-out)}.cta-arrow-link[href*="//"]:not([href*="netlify.com"]){--_icon-rotate: -45deg}.cta-arrow-link[href^="#"]{--_icon-rotate: 90deg} .button[data-astro-cid-tcbm7f7q][data-icon-name=arrow][data-icon-position=inline-end]:hover{--_icon-x: 2px}.button[data-astro-cid-tcbm7f7q][data-icon-name=arrow] svg[data-astro-cid-tcbm7f7q]{--button-icon-size: .7em;transform:rotate(var(--_icon-rotate, 0)) translate(var(--_icon-x, 0));transition:transform .2s var(--ease-out)}.button[data-astro-cid-tcbm7f7q][data-icon-name=arrow][data-icon-position=inline-end][href*="//"]:not([href*="netlify.com"]){--_icon-rotate: -45deg}.button[data-astro-cid-tcbm7f7q][data-icon-name=arrow][data-icon-position=inline-end][href^="#"]{--_icon-rotate: 90deg}.button[data-astro-cid-tcbm7f7q]::-webkit-details-marker{display:none} </style><script type="module" src="/_astro/hoisted.BjIq4Q9d.js"></script></head> <body> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T7WNFLD" height="0" width="0" style="display:none;visibility:hidden"> </iframe></noscript> <header class="site-header"> <script id="announcement-render" data-announcement-url="https://www.netlify.com/reports/gartner-magic-quadrant-visionary/?utm_content=eyebrow" data-announcement-hide-after="2024-12-05"> (function () { const storageUrl = localStorage.getItem('Netlify_hide-announcement-bar'); const scriptTarget = document.querySelector('#announcement-render'); if (!scriptTarget) return; const url = scriptTarget.getAttribute('data-announcement-url'); const hideAfter = scriptTarget.getAttribute('data-announcement-hide-after'); function isExpired(date) { if (!date) return; let hideAfterSplit = date.split(/[^\d]/).map((entry) => parseInt(entry, 10)); let compareDate = new Date(hideAfterSplit[0], hideAfterSplit[1] - 1, hideAfterSplit[2] + 1); return compareDate && new Date() > compareDate; } if (storageUrl === url || isExpired(hideAfter)) { document.documentElement.setAttribute('data-announcement-state', 'hidden'); } })(); </script> <div class="announcement-bar" data-href="https://www.netlify.com/reports/gartner-magic-quadrant-visionary/?utm_content=eyebrow" data-astro-cid-o54ltyzl> <p data-astro-cid-o54ltyzl><span data-astro-cid-o54ltyzl>Gartner recognizes Netlify as a Visionary in </span> <a href="https://www.netlify.com/reports/gartner-magic-quadrant-visionary/?utm_content=eyebrow" id="cta-header-announcementBar" data-astro-cid-o54ltyzl>2024 Gartner® Magic Quadrant™ for Cloud Application Platforms > </a></p> <button class="close" type="reset" id="cta-header-announcementBar-close" data-astro-cid-o54ltyzl> <span class="visually-hidden" data-astro-cid-o54ltyzl>Close announcement bar</span> <svg width="0.75em" height="1em" viewBox="0 0 384 512" aria-hidden="true" style="--button-icon-size: 1.25rem" data-astro-cid-o54ltyzl data-icon="close"> <use xlink:href="#ai:local:close"></use> </svg> </button> </div> <section class="wrapper | l-breakout"> <nav id="site-nav" class="site-navigation" aria-labelledby="site-nav-label" data-astro-cid-2ioqeek6> <h2 id="site-nav-label" class="visually-hidden" data-astro-cid-2ioqeek6>Site navigation</h2> <a id="mainNav-netlifyLogo" href="/" data-astro-cid-jwiz4kkf> <span class="visually-hidden" data-astro-cid-jwiz4kkf>Go to homepage</span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 209" fill="none" aria-hidden="true" data-astro-cid-jwiz4kkf> <g clip-path="url(#clip0_235_8)" data-astro-cid-jwiz4kkf> <path d="M117.436 207.036V154.604L118.529 153.51H129.452L130.545 154.604V207.036L129.452 208.13H118.529L117.436 207.036Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M117.436 53.5225V1.09339L118.529 0H129.452L130.545 1.09339V53.5225L129.452 54.6159H118.529L117.436 53.5225Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M69.9539 169.238H68.4094L60.6869 161.512V159.967L78.7201 141.938L86.8976 141.942L87.9948 143.031V151.209L69.9539 169.238Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M69.9462 38.8917H68.4017L60.6792 46.6181V48.1626L78.7124 66.192L86.8899 66.1882L87.9871 65.0986V56.9212L69.9462 38.8917Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M1.09339 97.5104H75.3711L76.4645 98.6038V109.526L75.3711 110.62H1.09339L0 109.526V98.6038L1.09339 97.5104Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M440.999 97.5104H510.91L512.004 98.6038V109.526L510.91 110.62H436.633L435.539 109.526L439.905 98.6038L440.999 97.5104Z" class="spark" data-astro-cid-jwiz4kkf></path> <path d="M212.056 108.727L210.963 109.821H177.079L175.986 110.914C175.986 113.101 178.173 119.657 186.916 119.657C190.196 119.657 193.472 118.564 194.566 116.377L195.659 115.284H208.776L209.869 116.377C208.776 122.934 203.313 132.774 186.916 132.774C168.336 132.774 159.589 119.657 159.589 104.357C159.589 89.0576 168.332 75.9408 185.822 75.9408C203.313 75.9408 212.056 89.0576 212.056 104.357V108.731V108.727ZM195.659 97.7971C195.659 96.7037 194.566 89.0538 185.822 89.0538C177.079 89.0538 175.986 96.7037 175.986 97.7971L177.079 98.8905H194.566L195.659 97.7971Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M242.66 115.284C242.66 117.47 243.753 118.564 245.94 118.564H255.776L256.87 119.657V130.587L255.776 131.681H245.94C236.103 131.681 227.36 127.307 227.36 115.284V91.2368L226.266 90.1434H218.617L217.523 89.05V78.1199L218.617 77.0265H226.266L227.36 75.9332V66.0965L228.453 65.0031H241.57L242.663 66.0965V75.9332L243.757 77.0265H255.78L256.874 78.1199V89.05L255.78 90.1434H243.757L242.663 91.2368V115.284H242.66Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M283.1 131.681H269.983L268.889 130.587V56.2636L269.983 55.1702H283.1L284.193 56.2636V130.587L283.1 131.681Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M312.61 68.2871H299.493L298.399 67.1937V56.2636L299.493 55.1702H312.61L313.703 56.2636V67.1937L312.61 68.2871ZM312.61 131.681H299.493L298.399 130.587V78.1237L299.493 77.0304H312.61L313.703 78.1237V130.587L312.61 131.681Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M363.98 56.2636V67.1937L362.886 68.2871H353.05C350.863 68.2871 349.769 69.3805 349.769 71.5672V75.9408L350.863 77.0342H361.793L362.886 78.1276V89.0576L361.793 90.151H350.863L349.769 91.2444V130.591L348.676 131.684H335.559L334.466 130.591V91.2444L333.372 90.151H325.723L324.629 89.0576V78.1276L325.723 77.0342H333.372L334.466 75.9408V71.5672C334.466 59.5438 343.209 55.1702 353.046 55.1702H362.882L363.976 56.2636H363.98Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M404.42 132.774C400.046 143.704 395.677 150.261 380.373 150.261H374.906L373.813 149.167V138.237L374.906 137.144H380.373C385.836 137.144 386.929 136.05 388.023 132.77V131.677L370.536 89.05V78.1199L371.63 77.0265H381.466L382.56 78.1199L395.677 115.284H396.77L409.887 78.1199L410.98 77.0265H420.817L421.91 78.1199V89.05L404.424 132.77L404.42 132.774Z" class="text" data-astro-cid-jwiz4kkf></path> <path d="M135.454 131.681L134.361 130.587L134.368 98.9172C134.368 93.4541 132.22 89.2182 125.625 89.0806C122.234 88.9926 118.354 89.0729 114.209 89.2488L113.59 89.8834L113.598 130.587L112.504 131.681H99.3913L98.2979 130.587V77.5388L99.3913 76.4454L128.901 76.1778C143.685 76.1778 149.668 86.3356 149.668 97.8009V130.587L148.575 131.681H135.454Z" class="text" data-astro-cid-jwiz4kkf></path> </g> <defs data-astro-cid-jwiz4kkf> <clipPath id="clip0_235_8" data-astro-cid-jwiz4kkf> <rect width="512" height="208.126" fill="white" data-astro-cid-jwiz4kkf></rect> </clipPath> </defs> </svg> </a> <a class="skip-to-content" href="#main" data-astro-cid-2ioqeek6>Skip to content</a> <ul data-variant="compact" class="menu" role="list" data-astro-cid-2ioqeek6> <li data-astro-cid-2ioqeek6> <button id="main-nav-compact-search" class="site-search-toggle" data-site-search-open class="search-toggle" data-astro-cid-3dk7mn5f> <span class="visually-hidden" data-astro-cid-3dk7mn5f>Search</span> <svg width="16" height="20" viewBox="0 0 22 24" aria-hidden="true" data-astro-cid-3dk7mn5f data-icon="search"> <symbol id="ai:local:search"><path fill="currentcolor" d="M9.413.473a9.081 9.081 0 0 1 6.454 15.47l5.526 5.524-2.122 2.121-5.872-5.872A9.081 9.081 0 1 1 9.413.472m0 3a6.081 6.081 0 1 0 0 12.162 6.081 6.081 0 0 0 0-12.162"/></symbol><use xlink:href="#ai:local:search"></use> </svg> </button> </li> <li data-astro-cid-2ioqeek6> <a id="main-nav-compact-login" href="https://app.netlify.com/login" data-astro-cid-2ioqeek6> Log in </a> </li> </ul> <button id="main-nav-compact-hamburger" type="button" class="nav-toggle" aria-expanded="false" aria-controls="main-menu" data-site-nav-toggle data-astro-cid-qsvltxvz> <span class="visually-hidden" data-astro-cid-qsvltxvz>Toggle main menu</span> <svg width="1.24em" height="1em" viewBox="0 0 31 25" aria-hidden="true" data-astro-cid-qsvltxvz data-icon="menu"> <symbol id="ai:local:menu"><path fill="currentcolor" d="M.581.719h30v4h-30zm0 10h30v4h-30zm0 10h30v4h-30z"/></symbol><use xlink:href="#ai:local:menu"></use> </svg> </button> <ul class="menu" role="list" data-astro-cid-2ioqeek6> <li class="has-submenu" data-astro-cid-2ioqeek6> <span id="main-nav-platform" data-astro-cid-2ioqeek6>Platform</span> <submenu-utils data-astro-cid-sdvpe5d5> <button class="submenu-toggle" aria-haspopup="true" aria-expanded="false" data-astro-cid-sdvpe5d5> <span class="visually-hidden" data-astro-cid-sdvpe5d5>Toggle platform submenu</span> <svg width="1em" height="1em" viewBox="0 0 512 512" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </button> <div id="platform-submenu" class="submenu" data-theme="light" data-astro-cid-sdvpe5d5> <div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>The Netlify Platform</h3> <p><strong>Instantly build and deploy</strong> your sites to our global network from Git. Custom domains, https, deploy previews, rollbacks and much more.</p> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-explore-the-platform" href="/platform/" data-astro-cid-sdvpe5d5> Explore the platform </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-netlify-connect" href="/platform/connect/" data-astro-cid-sdvpe5d5> Netlify Connect </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-netlify-core" href="/platform/core/" data-astro-cid-sdvpe5d5> Netlify Core </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-netlify-create" href="/platform/create/" data-astro-cid-sdvpe5d5> Netlify Create </a> </li> </ul> </div><div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Key Features</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-platform-primitives" href="/platform/primitives/" data-astro-cid-sdvpe5d5> Platform Primitives </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-enterprise-team-management" href="/platform/core/enterprise-team-management/" data-astro-cid-sdvpe5d5> Enterprise Team Management </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-sdk" href="/platform/software-development-kit/" data-astro-cid-sdvpe5d5> SDK </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-security" href="/security/" data-astro-cid-sdvpe5d5> Security </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-edge-functions" href="/platform/core/edge/#edge-functions/" data-astro-cid-sdvpe5d5> Edge Functions </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-analytics" href="/platform/core/analytics/" data-astro-cid-sdvpe5d5> Analytics </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-deploy-previews" href="/platform/core/deploy-previews/" data-astro-cid-sdvpe5d5> Deploy Previews </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-split-testing" href="https://docs.netlify.com/site-deploys/split-testing/" data-astro-cid-sdvpe5d5> Split Testing </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-forms" href="/platform/core/forms/" data-astro-cid-sdvpe5d5> Forms </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-integrations" href="/integrations/" data-astro-cid-sdvpe5d5> Integrations </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-changelog" href="/changelog/" data-astro-cid-sdvpe5d5> Changelog </a> </li> </ul> </div><div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Ecosystem</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-tech-partners" href="/partners/technology/" data-astro-cid-sdvpe5d5> Tech Partners </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-agency-partners" href="/partners/agency/" data-astro-cid-sdvpe5d5> Agency Partners </a> </li> </ul> </div> </div> </submenu-utils> </li><li class="has-submenu" data-astro-cid-2ioqeek6> <span id="main-nav-solutions" data-astro-cid-2ioqeek6>Solutions</span> <submenu-utils data-astro-cid-sdvpe5d5> <button class="submenu-toggle" aria-haspopup="true" aria-expanded="false" data-astro-cid-sdvpe5d5> <span class="visually-hidden" data-astro-cid-sdvpe5d5>Toggle solutions submenu</span> <svg width="1em" height="1em" viewBox="0 0 512 512" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </button> <div id="solutions-submenu" class="submenu" data-theme="light" data-astro-cid-sdvpe5d5> <div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Why Netlify?</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-resources-guides" href="/resources/" data-astro-cid-sdvpe5d5> Resources & Guides </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-customers" href="/customers/" data-astro-cid-sdvpe5d5> Customers </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-case-studies" href="/resources/case-studies/" data-astro-cid-sdvpe5d5> Case Studies </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-roi-calculator" href="/roi-calculator/" data-astro-cid-sdvpe5d5> ROI Calculator </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-security-at-netlify" href="/security/" data-astro-cid-sdvpe5d5> Security at Netlify </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-whitepaper" href="/whitepaper/" data-astro-cid-sdvpe5d5> Whitepaper </a> </li> </ul> </div><div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Use Cases</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-company-websites" href="/for/company-websites/" data-astro-cid-sdvpe5d5> Company Websites </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-e-commerce" href="/for/ecommerce/" data-astro-cid-sdvpe5d5> E-commerce </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-web-apps" href="/for/web-applications/" data-astro-cid-sdvpe5d5> Web Apps </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-large-sites" href="/blog/2020/06/16/building-large-sites-on-netlify/" data-astro-cid-sdvpe5d5> Large Sites </a> </li> </ul> </div><div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Don't see your solution?</h3> <p><strong>Don’t see your solution? </strong>We can help. <a href="https://www.netlify.com/enterprise/contact/?attr=homepage&ref=&id=nav-solutions-chat-with-netlify-expert">Chat with a Netlify expert</a></p> </div> </div> </submenu-utils> </li><li class="" data-astro-cid-2ioqeek6> <a id="main-nav-integrations" href="/integrations/" data-astro-cid-2ioqeek6> Integrations </a> </li><li class="has-submenu" data-astro-cid-2ioqeek6> <span id="main-nav-start-building" data-astro-cid-2ioqeek6>Start Building</span> <submenu-utils data-astro-cid-sdvpe5d5> <button class="submenu-toggle" aria-haspopup="true" aria-expanded="false" data-astro-cid-sdvpe5d5> <span class="visually-hidden" data-astro-cid-sdvpe5d5>Toggle start building submenu</span> <svg width="1em" height="1em" viewBox="0 0 512 512" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </button> <div id="start-building-submenu" class="submenu" data-theme="light" data-astro-cid-sdvpe5d5> <div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Where to start</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <a id="nav-docs" href="https://docs.netlify.com/" data-astro-cid-sdvpe5d5> Docs </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-developer-hub" href="https://developers.netlify.com/" data-astro-cid-sdvpe5d5> Developer Hub </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-templates" href="/integrations/templates/" data-astro-cid-sdvpe5d5> Templates </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-composable-commerce-101" href="/composable-commerce/" data-astro-cid-sdvpe5d5> Composable Commerce 101 </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-work-with-a-partner-agency" href="/agency-directory/" data-astro-cid-sdvpe5d5> Work with a Partner Agency </a> </li> </ul> </div><div class="section l-stack" data-astro-cid-sdvpe5d5> <h3 data-astro-cid-sdvpe5d5>Project kickstarts</h3> <ul class="l-stack" role="list" data-astro-cid-sdvpe5d5> <li data-astro-cid-sdvpe5d5> <svg width="0.8em" height="1em" viewBox="0 0 85 107" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="astro"> <symbol id="ai:local:astro"><path fill="currentColor" d="M27.59 91.137c-4.834-4.42-6.246-13.704-4.232-20.43 3.492 4.241 8.33 5.584 13.342 6.343 7.737 1.17 15.336.732 22.523-2.804.822-.405 1.582-.943 2.48-1.489.675 1.957.85 3.932.615 5.943-.573 4.896-3.01 8.678-6.885 11.545-1.55 1.147-3.19 2.172-4.79 3.253-4.917 3.323-6.247 7.22-4.4 12.888.044.139.084.277.183.614-2.51-1.124-4.344-2.76-5.742-4.911-1.475-2.27-2.177-4.78-2.214-7.498-.019-1.322-.019-2.656-.197-3.96-.434-3.178-1.926-4.601-4.737-4.683-2.884-.084-5.166 1.699-5.771 4.507-.046.216-.113.429-.18.68zM0 69.587s14.314-6.973 28.668-6.973L39.49 29.12c.405-1.62 1.588-2.72 2.924-2.72s2.518 1.1 2.924 2.72L56.16 62.614c17 0 28.668 6.973 28.668 6.973S60.514 3.352 60.467 3.219C59.769 1.261 58.591 0 57.003 0H27.827c-1.588 0-2.718 1.261-3.464 3.22C24.311 3.35 0 69.586 0 69.586"/></symbol><use xlink:href="#ai:local:astro"></use> </svg> <a id="nav-astro" href="https://docs.netlify.com/frameworks/astro/" data-astro-cid-sdvpe5d5> Astro </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="nextjs"> <symbol id="ai:local:nextjs"><path fill="currentcolor" d="M11.573 0a5 5 0 0 0-.359.007L10.85.04c-3.407.307-6.6 2.146-8.622 4.972a11.9 11.9 0 0 0-2.119 5.243c-.096.659-.108.854-.108 1.747s.012 1.089.108 1.748c.652 4.506 3.86 8.292 8.209 9.695.779.25 1.6.422 2.534.525.363.04 1.935.04 2.299 0 1.611-.178 2.977-.577 4.323-1.264.207-.106.247-.134.219-.158-.02-.013-.9-1.193-1.955-2.62l-1.919-2.592-2.404-3.558a339 339 0 0 0-2.422-3.556c-.009-.002-.018 1.579-.023 3.51-.007 3.38-.01 3.515-.052 3.595a.43.43 0 0 1-.206.214c-.075.037-.14.044-.495.044H7.81l-.108-.068a.44.44 0 0 1-.157-.171l-.05-.106.006-4.703.007-4.705.072-.092a.7.7 0 0 1 .174-.143c.096-.047.134-.051.54-.051.478 0 .558.018.682.154a467 467 0 0 1 2.895 4.361l4.735 7.17 1.9 2.879.096-.063a12.3 12.3 0 0 0 2.466-2.163 11.94 11.94 0 0 0 2.824-6.134c.096-.66.108-.854.108-1.748 0-.893-.012-1.088-.108-1.747-.652-4.506-3.859-8.292-8.208-9.695a12.6 12.6 0 0 0-2.499-.523A33 33 0 0 0 11.573 0m4.068 7.217c.347 0 .408.005.486.047a.47.47 0 0 1 .237.277c.018.06.023 1.365.018 4.304l-.006 4.218-.744-1.14-.746-1.14v-3.066c0-1.982.01-3.097.023-3.15a.48.48 0 0 1 .233-.296c.096-.05.13-.054.5-.054z"/></symbol><use xlink:href="#ai:local:nextjs"></use> </svg> <a id="nav-next-js" href="/with/nextjs/" data-astro-cid-sdvpe5d5> Next.js </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="nuxtjs"> <symbol id="ai:local:nuxtjs"><path fill="currentcolor" d="M13.464 19.83h8.922c.283 0 .562-.073.807-.21a1.6 1.6 0 0 0 .591-.574 1.53 1.53 0 0 0 .216-.783 1.53 1.53 0 0 0-.217-.782L17.792 7.414a1.6 1.6 0 0 0-.591-.573 1.65 1.65 0 0 0-.807-.21c-.283 0-.562.073-.807.21a1.6 1.6 0 0 0-.59.573L13.463 9.99 10.47 4.953a1.6 1.6 0 0 0-.591-.573 1.65 1.65 0 0 0-.807-.21c-.284 0-.562.073-.807.21a1.6 1.6 0 0 0-.591.573L.216 17.481a1.53 1.53 0 0 0-.217.782c0 .275.074.545.216.783a1.6 1.6 0 0 0 .59.574c.246.137.525.21.808.21h5.6c2.22 0 3.856-.946 4.982-2.79l2.733-4.593 1.464-2.457 4.395 7.382h-5.859Zm-6.341-2.46-3.908-.002 5.858-9.842 2.923 4.921-1.957 3.29c-.748 1.196-1.597 1.632-2.916 1.632"/></symbol><use xlink:href="#ai:local:nuxtjs"></use> </svg> <a id="nav-nuxt" href="/with/nuxt/" data-astro-cid-sdvpe5d5> Nuxt </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="gatsby"> <symbol id="ai:local:gatsby"><path fill="currentcolor" d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0m0 2.571c3.171 0 5.915 1.543 7.629 3.858l-1.286 1.115C16.886 5.572 14.571 4.286 12 4.286c-3.343 0-6.171 2.143-7.286 5.143l9.857 9.857c2.486-.857 4.373-3 4.973-5.572h-4.115V12h6c0 4.457-3.172 8.228-7.372 9.17L2.83 9.944C3.772 5.743 7.543 2.57 12 2.57zm-9.429 9.6 9.344 9.258c-2.4-.086-4.801-.943-6.601-2.743s-2.743-4.201-2.743-6.515"/></symbol><use xlink:href="#ai:local:gatsby"></use> </svg> <a id="nav-gatsby" href="/with/gatsby/" data-astro-cid-sdvpe5d5> Gatsby </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="wordpress"> <symbol id="ai:local:wordpress"><path fill="currentcolor" d="M21.469 6.825c.84 1.537 1.318 3.3 1.318 5.175 0 3.979-2.156 7.456-5.363 9.325l3.295-9.527c.615-1.54.82-2.771.82-3.864 0-.405-.026-.78-.07-1.11m-7.981.105c.647-.03 1.232-.105 1.232-.105.582-.075.514-.93-.067-.899 0 0-1.755.135-2.88.135-1.064 0-2.85-.15-2.85-.15-.585-.03-.661.855-.075.885 0 0 .54.061 1.125.09l1.68 4.605-2.37 7.08L5.354 6.9c.649-.03 1.234-.1 1.234-.1.585-.075.516-.93-.065-.896 0 0-1.746.138-2.874.138-.2 0-.438-.008-.69-.015C4.911 3.15 8.235 1.215 12 1.215c2.809 0 5.365 1.072 7.286 2.833-.046-.003-.091-.009-.141-.009-1.06 0-1.812.923-1.812 1.914 0 .89.513 1.643 1.06 2.531.411.72.89 1.643.89 2.977 0 .915-.354 1.994-.821 3.479l-1.075 3.585-3.9-11.61zM12 22.784c-1.059 0-2.081-.153-3.048-.437l3.237-9.406 3.315 9.087q.036.078.078.149c-1.12.393-2.325.609-3.582.609M1.211 12c0-1.564.336-3.05.935-4.39L7.29 21.709A10.79 10.79 0 0 1 1.211 12M12 0C5.385 0 0 5.385 0 12s5.385 12 12 12 12-5.385 12-12S18.615 0 12 0"/></symbol><use xlink:href="#ai:local:wordpress"></use> </svg> <a id="nav-wordpress" href="/with/wordpress/" data-astro-cid-sdvpe5d5> Wordpress </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="react"> <symbol id="ai:local:react"><path fill="currentcolor" d="M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236m2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38a2.17 2.17 0 0 0-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44a23.5 23.5 0 0 0-3.107-.534A24 24 0 0 0 12.769 4.7c1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442a23 23 0 0 0-3.113.538 15 15 0 0 1-.254-1.42c-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05q.684.704 1.36 1.564c-.44-.02-.89-.034-1.345-.034q-.691-.001-1.36.034c.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093q.61.874 1.183 1.86.557.961 1.018 1.946c-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87a25.6 25.6 0 0 1-4.412.005 27 27 0 0 1-1.183-1.86q-.557-.961-1.018-1.946a25 25 0 0 1 1.013-1.954c.38-.66.773-1.286 1.18-1.868A25 25 0 0 1 12 8.098zm-3.635.254c-.24.377-.48.763-.704 1.16q-.336.585-.635 1.174c-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0q1.044.153 2.006.387c-.18.632-.405 1.282-.66 1.933a26 26 0 0 0-1.345-2.32zm3.063.675q.727.226 1.375.498c1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493a24 24 0 0 0-1.1-2.98c.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98a23 23 0 0 0-1.086 2.964c-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474s1.12-1.742 2.852-2.476c.42-.18.88-.342 1.356-.494m11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39a26 26 0 0 0 1.341-2.338zm-9.945.02c.2.392.41.783.64 1.175q.345.586.705 1.143a22 22 0 0 1-2.006-.386c.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295a1.2 1.2 0 0 1-.553-.132c-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64q.661.032 1.345.034.691.001 1.36-.034c-.44.572-.895 1.095-1.345 1.565q-.684-.706-1.36-1.565"/></symbol><use xlink:href="#ai:local:react"></use> </svg> <a id="nav-react" href="/with/react/" data-astro-cid-sdvpe5d5> React </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="vue"> <symbol id="ai:local:vue"><path fill="currentcolor" d="M24 1.61h-9.94L12 5.16 9.94 1.61H0l12 20.78ZM12 14.08 5.16 2.23h4.43L12 6.41l2.41-4.18h4.43Z"/></symbol><use xlink:href="#ai:local:vue"></use> </svg> <a id="nav-vue" href="/with/vue/" data-astro-cid-sdvpe5d5> Vue </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="svelte"> <symbol id="ai:local:svelte"><path fill="currentcolor" d="M10.354 21.125a4.44 4.44 0 0 1-4.765-1.767 4.1 4.1 0 0 1-.703-3.107 4 4 0 0 1 .134-.522l.105-.321.287.21a7.2 7.2 0 0 0 2.186 1.092l.208.063-.02.208a1.25 1.25 0 0 0 .226.83 1.34 1.34 0 0 0 1.435.533 1.2 1.2 0 0 0 .343-.15l5.59-3.562a1.16 1.16 0 0 0 .524-.778 1.24 1.24 0 0 0-.211-.937 1.34 1.34 0 0 0-1.435-.533 1.2 1.2 0 0 0-.343.15l-2.133 1.36a4 4 0 0 1-1.135.499 4.44 4.44 0 0 1-4.765-1.766 4.1 4.1 0 0 1-.702-3.108 3.86 3.86 0 0 1 1.742-2.582l5.589-3.563a4 4 0 0 1 1.135-.499 4.44 4.44 0 0 1 4.765 1.767 4.1 4.1 0 0 1 .703 3.107 4 4 0 0 1-.134.522l-.105.321-.286-.21a7.2 7.2 0 0 0-2.187-1.093l-.208-.063.02-.207a1.25 1.25 0 0 0-.226-.831 1.34 1.34 0 0 0-1.435-.532 1.2 1.2 0 0 0-.343.15L8.62 9.368a1.16 1.16 0 0 0-.524.778 1.24 1.24 0 0 0 .211.937 1.34 1.34 0 0 0 1.435.533 1.2 1.2 0 0 0 .344-.151l2.132-1.36a4 4 0 0 1 1.135-.498 4.44 4.44 0 0 1 4.765 1.766 4.1 4.1 0 0 1 .702 3.108 3.86 3.86 0 0 1-1.742 2.583l-5.589 3.562a4 4 0 0 1-1.135.499m10.358-17.95C18.484-.015 14.082-.96 10.9 1.068L5.31 4.63a6.4 6.4 0 0 0-2.896 4.295 6.75 6.75 0 0 0 .666 4.336 6.4 6.4 0 0 0-.96 2.396 6.83 6.83 0 0 0 1.168 5.167c2.229 3.19 6.63 4.135 9.812 2.108l5.59-3.562a6.4 6.4 0 0 0 2.896-4.295 6.76 6.76 0 0 0-.665-4.336 6.4 6.4 0 0 0 .958-2.396 6.83 6.83 0 0 0-1.167-5.168"/></symbol><use xlink:href="#ai:local:svelte"></use> </svg> <a id="nav-svelte" href="/with/svelte/" data-astro-cid-sdvpe5d5> Svelte </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 50 50" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="sitecore"> <symbol id="ai:local:sitecore"><path fill="currentColor" d="M25 2C12.317 2 2 12.318 2 25s10.317 23 23 23 23-10.318 23-23S37.683 2 25 2m0 6c9.374 0 17 7.626 17 17s-7.626 17-17 17S8 34.374 8 25 15.626 8 25 8m9.244 5.21-6.531 4.546.426.73c.007.015.821 1.435.861 3.514.033 1.654 0 9-11 9-3 0-7-1-7-1s3 3 11 3c10.842 0 10.999-11.512 11-12.002l.004-.996L39.133 20a15.1 15.1 0 0 0-4.889-6.79m.694 8.79C34.629 25.204 32.804 35 22 35c-3.375 0-6.494-.665-8.883-1.379C14.864 34.993 18.375 37 24 37c7.335 0 11.096-6.431 11.133-6.496l.53-.93 2.849 1.899A14.9 14.9 0 0 0 40 25a15 15 0 0 0-.322-3zm1.343 10.389C34.845 34.386 30.792 39 24 39c-2.383 0-4.43-.335-6.166-.836A14.85 14.85 0 0 0 25 40c5.236 0 9.847-2.701 12.531-6.777z"/></symbol><use xlink:href="#ai:local:sitecore"></use> </svg> <a id="nav-sitecore" href="/with/sitecore/" data-astro-cid-sdvpe5d5> Sitecore </a> </li><li data-astro-cid-sdvpe5d5> <svg width="1em" height="1em" viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-sdvpe5d5 data-icon="jamstack"> <symbol id="ai:local:jamstack"><path fill="currentcolor" d="M12 0C5.365 0 0 5.364 0 12s5.365 12 12 12 12-5.364 12-12V0zm.496 3.318h8.17v8.17h-8.17zm-9.168 9.178h8.16v8.149c-4.382-.257-7.904-3.767-8.16-8.149m9.168.016h8.152a8.684 8.684 0 0 1-8.152 8.148z"/></symbol><use xlink:href="#ai:local:jamstack"></use> </svg> <a id="nav-jamstack" href="/jamstack/" data-astro-cid-sdvpe5d5> Jamstack </a> </li><li data-astro-cid-sdvpe5d5> <a id="nav-more" href="/integrations/frameworks/" data-astro-cid-sdvpe5d5> +More </a> </li> </ul> </div> </div> </submenu-utils> </li><li class="" data-astro-cid-2ioqeek6> <a id="main-nav-docs" href="https://docs.netlify.com/" data-astro-cid-2ioqeek6> Docs </a> </li><li class="" data-astro-cid-2ioqeek6> <a id="main-nav-pricing" href="/pricing/" data-astro-cid-2ioqeek6> Pricing </a> </li><li class="nav-search" data-astro-cid-2ioqeek6> <button id="cta-main-nav-search" class="site-search-toggle" data-site-search-open class="search-toggle" data-astro-cid-3dk7mn5f> <span class="visually-hidden" data-astro-cid-3dk7mn5f>Search</span> <svg width="16" height="20" viewBox="0 0 22 24" aria-hidden="true" data-astro-cid-3dk7mn5f data-icon="search"> <use xlink:href="#ai:local:search"></use> </svg> </button> </li><li class="" data-astro-cid-2ioqeek6> <a id="main-nav-contact" href="/contact/" data-astro-cid-2ioqeek6> Contact </a> </li><li class="" data-astro-cid-2ioqeek6> <a id="main-nav-login" href="https://app.netlify.com/login" data-astro-cid-2ioqeek6> Log in </a> </li> </ul> <a id="signup" href="https://app.netlify.com/signup" class="button" data-type="primary" data-astro-cid-2ioqeek6> Sign up</a> </nav> <site-search class="className" data-astro-cid-pkfvzmd6> <dialog id="site-search-dialog" class="l-center" data-theme="light" data-astro-cid-pkfvzmd6> <button class="close" type="reset" onclick="this.closest('dialog').close('cancel')" data-astro-cid-pkfvzmd6> <span class="visually-hidden" data-astro-cid-pkfvzmd6>Close search modal</span> <svg width="0.75em" height="1em" viewBox="0 0 384 512" aria-hidden="true" data-astro-cid-pkfvzmd6 data-icon="close"> <symbol id="ai:local:close"><path fill="currentcolor" d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3l105.4 105.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256z"/></symbol><use xlink:href="#ai:local:close"></use> </svg> </button> <div class="l-center l-stack" data-astro-cid-pkfvzmd6> <div class="search-input" data-astro-cid-pkfvzmd6> <label class="visually-hidden" for="site-search" data-astro-cid-pkfvzmd6>Search Netlify:</label> <input id="site-search" type="text" placeholder="Start typing to search" autofocus data-astro-cid-pkfvzmd6> </div> <article class="results" data-astro-cid-pkfvzmd6></article> </div> </dialog> </site-search> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.17.0/dist/algoliasearch-lite.umd.js" integrity="sha256-Lf9DrpGmcRip6OQzbcL6lnvNmoZNSKpyQX5pMlwatWE=" crossorigin="anonymous" defer></script> </section> <script> const header = document.querySelector('.site-header'); document.documentElement.style.setProperty('--site-header-height', `${header.getBoundingClientRect().height}px`); const resizeObserver = new ResizeObserver(([el]) => { document.documentElement.style.setProperty('--site-header-height', `${el.contentRect.height}px`); }); header && resizeObserver.observe(header); </script> </header> <main id="main"> <div class="l-stack l-stack-3xl"><section class="pancake | l-section pancake-background-clip pancake-margin-top-override" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.0" data-theme="light-gradient" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-0);--pancake-align-items: center;"> <picture class="pancake-graphics" data-options="" data-astro-cid-5mutinvq data-astro-cid-dxfgtee3 style="--graphic-object-position: bottom;"> <img src="/_astro/66bd2cf37e3a896998b950bc92c705ffdc40908d-2882x1392_Z2mub00.webp" alt="" data-astro-cid-dxfgtee3 data-astro-cid-jbhojhg7 width="2882" height="1392" loading="lazy" decoding="async"> </picture> <div class="pancake-content | l-stack l-stack-large" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-0);--pancake-align-items: center;"> <div class="ingredient l-breakout ingredient-section-header" data-astro-cid-gfez5emt style=""> <div class="b-heading text-center" data-sb-field-path=".ingredients.0" _type="sectionHeader" marginTop="" _key="60babea5-8a90-43c5-a904-950d7d972277" data-astro-cid-wk2votdk style="--heading-max: 20ch;--supporting-space: var(--space-l);"> <h1 class="heading" data-sb-field-path=".heading" data-astro-cid-wk2votdk>Turn your static pages into dynamic experiences</h1> <div class="prose l-stack l-stack-medium supporting font-heading text-05 font-semilight" data-sb-field-path=".supporting.content" data-astro-cid-cnvtppup style="--prose-max-width: 50ch;"> <p>Advanced, framework-agnostic cache control<br>with platform primitives</p> </div> </div> </div> <div class="ingredient l-breakout ingredient-call-to-action-group" data-astro-cid-gfez5emt style=""> <div class="cta-group | l-cluster" data-sb-field-path=".ingredients.1" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: flex-start;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a class="button" data-type="primary" id="cta-hero-deploy-to-netlify" href="https://app.netlify.com/signup" data-sb-field-path=".items.0" data-astro-cid-sc466a3x>Deploy to Netlify</a> </div> </div> <div class="ingredient l-breakout ingredient-code-block-group" data-astro-cid-gfez5emt style="--stack-space: var(--space-xl);--max-width: 700px;"> <article class="code-block-group" data-theme="dark" data-animate data-sb-field-path=".ingredients.2" maxWidth="700px" _type="codeBlockGroup" _key="6dc7c0d3c8f2" marginTop="--space-xl" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <the-tabs class="code-block-group-tabs" data-astro-cid-w4asniyw> <div role="tablist" class="scroll-inline" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <button id="cta-codeBlockGroup-tab-next-js" role="tab" data-type="reset" data-sb-field-path=".items.0" aria-selected="true" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <h3 class="tab-title" data-sb-field-path=".title" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> Next.js </h3> </button><button id="cta-codeBlockGroup-tab-astro" role="tab" data-type="reset" data-sb-field-path=".items.1" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <h3 class="tab-title" data-sb-field-path=".title" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> Astro </h3> </button><button id="cta-codeBlockGroup-tab-nuxt" role="tab" data-type="reset" data-sb-field-path=".items.2" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <h3 class="tab-title" data-sb-field-path=".title" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> Nuxt </h3> </button><button id="cta-codeBlockGroup-tab-gatsby" role="tab" data-type="reset" data-sb-field-path=".items.3" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <h3 class="tab-title" data-sb-field-path=".title" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> Gatsby </h3> </button><button id="cta-codeBlockGroup-tab-remix" role="tab" data-type="reset" data-sb-field-path=".items.4" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <h3 class="tab-title" data-sb-field-path=".title" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> Remix </h3> </button> </div> <div class="panel-wrapper" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <div role="tabpanel" class="custom-scrollbars" data-sb-field-path=".items.0.codeBlock" data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <pre class="astro-code dracula-soft" style="background-color:#282A36;color:#f6f6f4; overflow-x: auto;" tabindex="0" data-astro-cid-w4asniyw data-language="plaintext"><code><span class="line"><span>npm create-next-app@latest</span></span></code></pre> </div><div role="tabpanel" class="custom-scrollbars" data-sb-field-path=".items.1.codeBlock" hidden data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <pre class="astro-code dracula-soft" style="background-color:#282A36;color:#f6f6f4; overflow-x: auto;" tabindex="0" data-astro-cid-w4asniyw data-language="plaintext"><code><span class="line"><span>npm create astro@latest</span></span></code></pre> </div><div role="tabpanel" class="custom-scrollbars" data-sb-field-path=".items.2.codeBlock" hidden data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <pre class="astro-code dracula-soft" style="background-color:#282A36;color:#f6f6f4; overflow-x: auto;" tabindex="0" data-astro-cid-w4asniyw data-language="plaintext"><code><span class="line"><span>npx nuxi@latest init</span></span></code></pre> </div><div role="tabpanel" class="custom-scrollbars" data-sb-field-path=".items.3.codeBlock" hidden data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <pre class="astro-code dracula-soft" style="background-color:#282A36;color:#f6f6f4; overflow-x: auto;" tabindex="0" data-astro-cid-w4asniyw data-language="plaintext"><code><span class="line"><span>npm create gatsby@latest</span></span></code></pre> </div><div role="tabpanel" class="custom-scrollbars" data-sb-field-path=".items.4.codeBlock" hidden data-astro-cid-w4asniyw style="--tab-panel-height: 4.5rem;"> <pre class="astro-code dracula-soft" style="background-color:#282A36;color:#f6f6f4; overflow-x: auto;" tabindex="0" data-astro-cid-w4asniyw data-language="plaintext"><code><span class="line"><span>npx create-remix@latest</span></span></code></pre> </div> </div> </the-tabs> </article> </div> </div> </section> <section class="pancake | l-section" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.1" data-astro-cid-5mutinvq style="--breakout-area: content;--pancake-align-items: center;"> <div class="pancake-content | l-stack l-stack-medium" data-astro-cid-5mutinvq style="--breakout-area: content;--pancake-align-items: center;"> <div class="ingredient l-breakout ingredient-testimonial" data-astro-cid-gfez5emt style="--max-width: 850px;"> <div class="testimonial testimonial-featured l-stack l-stack-medium l-center-xy" data-sb-field-path=".ingredients.0" data-type="featured" data-astro-cid-fkbbckhy style=""> <article class="testimonial-card | card l-stack l-center" data-theme="light" data-sb-object-id="NkSZBVTqttYUPtmSfrRZ5P" data-astro-cid-fkbbckhy style=""> <figure data-astro-cid-fkbbckhy style=""> <div class="testimonial-body | l-stack" data-astro-cid-fkbbckhy style=""> <blockquote class="quote" data-astro-cid-fkbbckhy style=""><div class="prose l-stack" data-sb-field-path=".quote" data-astro-cid-cnvtppup style=""> <p>Netlify is playing the long game, betting on the web, and giving people choices. That’s the internet I fell in love with.</p> </div> </blockquote> <figcaption data-astro-cid-fkbbckhy style=""> <div class="author | l-sidebar-first" data-size-variant="inline" data-sb-object-id="NkSZBVTqttYUPtmSfrT6If" data-astro-cid-fkbbckhy data-astro-cid-2ri7i3m6> <img src="/_astro/63ed0c3819ce942761242f2dbc0b2fea0ee77fdf-800x800_ujCig.webp" alt="" data-astro-cid-2ri7i3m6 class="avatar" data-astro-cid-jbhojhg7 width="140" height="140" loading="lazy" decoding="async"> <dl class="l-stack l-stack-3xs" data-astro-cid-2ri7i3m6> <dt class="author-name | font-semibold tracking-tight" data-astro-cid-2ri7i3m6>Jason Lengstorf,</dt> <dd class="author-title | leading-snug" data-astro-cid-2ri7i3m6> <span data-astro-cid-2ri7i3m6>Host of Learn With Jason</span> </dd> </dl> </div> </figcaption> </div> </figure> </article> </div> </div> </div> </section> <section class="pancake | l-section pancake-margin-top-override" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.2" data-theme="light" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-3xl);--padding-block-start: var(--space-0);--pancake-align-items: center;"> <picture class="pancake-graphics" data-options="" data-astro-cid-5mutinvq data-astro-cid-dxfgtee3 style="--graphic-object-fit: cover;"> </picture> <div class="pancake-content | l-stack l-stack-medium" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-3xl);--padding-block-start: var(--space-0);--pancake-align-items: center;"> <div class="ingredient l-breakout ingredient-section-header" data-astro-cid-gfez5emt style=""> <div class="b-heading text-center" data-sb-field-path=".ingredients.0" _type="sectionHeader" _key="cefe85d73224" data-astro-cid-wk2votdk style="--heading-max: 20ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> <p class="preheading a-fade-in" data-variant="" data-sb-field-path=".preheading" data-astro-cid-wk2votdk style="--heading-max: 20ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Platform-level primitives </p> <h2 class="heading" data-sb-field-path=".heading" data-astro-cid-wk2votdk>Select your framework and build without limits</h2> <p class="subheading" data-sb-field-path=".subheading" data-astro-cid-wk2votdk style="--heading-max: 20ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Whether you’re building with Next.js, Astro, Nuxt, Remix, or another framework of your choice, see how our platform-level primitives unlock never-before-accessible functionalities across all frameworks. </p> </div> </div> <div class="ingredient l-breakout ingredient-custom-image" data-astro-cid-gfez5emt style="--max-width: 800px;"> <img src="/_astro/f3cb40b9b0de310cfd2b44f9d77ed751f1a6c25a-800x508_1gGDR8.svg" alt="" data-sb-object-id="image-f3cb40b9b0de310cfd2b44f9d77ed751f1a6c25a-800x508-svg" data-astro-cid-jbhojhg7 width="800" height="508" loading="lazy" decoding="async"> </div> <div class="ingredient l-breakout ingredient-call-to-action-group" data-astro-cid-gfez5emt style=""> <div class="cta-group | l-cluster" data-sb-field-path=".ingredients.2" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: flex-start;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a class="button" data-type="primary" id="cta-primitives-requestDemo" href="/contact/?attr=cta-primitives-requestDemo" data-sb-field-path=".items.0" data-astro-cid-sc466a3x>Request demo</a> </div> </div> </div> </section> <section class="pancake | l-section" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.3" data-theme="default" data-astro-cid-5mutinvq style="--breakout-area: content;--padding-block-start: var(--space-0);--padding-block-end: var(--space-m);--pancake-align-items: center;"> <picture class="pancake-graphics" data-options="" data-astro-cid-5mutinvq data-astro-cid-dxfgtee3 style="--graphic-object-fit: cover;"> </picture> <div class="pancake-content | l-stack l-stack-xl" data-astro-cid-5mutinvq style="--breakout-area: content;--padding-block-start: var(--space-0);--padding-block-end: var(--space-m);--pancake-align-items: center;"> <div class="ingredient l-breakout ingredient-section-header" data-astro-cid-gfez5emt style=""> <div class="b-heading text-center" data-sb-field-path=".ingredients.0" _key="5f0849b3-75b2-4261-ad83-41fdcf1c2530" _type="sectionHeader" data-astro-cid-wk2votdk style="--subheading-max: 58ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> <h2 class="heading" data-sb-field-path=".heading" data-astro-cid-wk2votdk>An open conversation about framework support and platform primitives</h2> <p class="subheading" data-sb-field-path=".subheading" data-astro-cid-wk2votdk style="--subheading-max: 58ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Take a seat at the table with Mathias Biilmann, CEO and cofounder at Netlify and our host Jason Lengstorf of Learn with Jason. </p> </div> </div> <div class="ingredient l-breakout ingredient-video" data-astro-cid-gfez5emt style="--max-width: 800px;"> <div class="yt-wrapper" data-sb-object-id="NkSZBVTqttYUPtmSfr2FVB" data-astro-cid-aomsn35f style="--border-radius: var(--radius-l);--border-color: var(null);--play-btn-svg: url("data:image/svg+xml, %3Csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 384 512'%3E%3Cpath fill='%23316bf4' d='M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80v352c0 17.4 9.4 33.4 24.5 41.9S58.2 482 73 473l288-176c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z' /%3E%3C/svg%3E");"><lite-youtube videoid="Mh0ASgHoxv8" params="rel=0" data-astro-cid-aomsn35f style="background-image: url('https://cdn.sanity.io/images/o0o2tn5x/marketing/429f7a303169bf7920c4ca13a895e5d23a4a7cd1-1280x720.jpg?auto=format');"> <a href="https://youtube.com/watch?v=Mh0ASgHoxv8" class="lty-playbtn"> <span class="lyt-visually-hidden">Play</span> </a> </lite-youtube> </div> </div> <div class="ingredient l-breakout ingredient-columns" data-astro-cid-gfez5emt style="--max-width: 800px;"> <div class="l-grid ingredient-columns" data-sb-field-path=".ingredients.2" style="--grid-gap:var(--space-l);--grid-min:200px;--grid-align:flex-start" data-astro-cid-fsqfrxl4> <div data-sb-field-path=".columns.0" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style="--max-width: 55px;"> <img src="/_astro/e7d98e3632bcf210f52f9a5e5e4352108dbf9c29-56x56_Z1PK3mO.svg" alt="" data-sb-object-id="image-e7d98e3632bcf210f52f9a5e5e4352108dbf9c29-56x56-svg" data-astro-cid-jbhojhg7 width="56" height="56" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-0 font-medium text-left"><span data-astro-cid-u4qoyrkz style="">Futureproof your framework selection through primitives at the platform level.</span> </h3> </div> </div><div data-sb-field-path=".columns.1" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style="--max-width: 55px;"> <img src="/_astro/ded765c45f117e172e1adaf885a5af9aa6c22917-56x55_z3Fab.svg" alt="" data-sb-object-id="image-ded765c45f117e172e1adaf885a5af9aa6c22917-56x55-svg" data-astro-cid-jbhojhg7 width="56" height="55" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-0 font-medium text-left"><span data-astro-cid-u4qoyrkz style="">Build dynamic experiences on the framework you prefer.</span> </h3> </div> </div><div data-sb-field-path=".columns.2" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style="--max-width: 55px;"> <img src="/_astro/603a56ceaf7d27d65ab1f499e8d42b98e91ca7f2-55x55_1p5QuA.svg" alt="" data-sb-object-id="image-603a56ceaf7d27d65ab1f499e8d42b98e91ca7f2-55x55-svg" data-astro-cid-jbhojhg7 width="55" height="55" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-0 font-medium text-left"><span data-astro-cid-u4qoyrkz style="">Experiment with exciting features inaccessible on all frameworks before.</span> </h3> </div> </div> </div> </div> </div> </section> <section class="pancake | l-section" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.4" data-astro-cid-5mutinvq style="--breakout-area: content;"> <picture class="pancake-graphics" data-options="" data-astro-cid-5mutinvq data-astro-cid-dxfgtee3 style="--graphic-object-fit: cover;"> </picture> <div class="pancake-content | l-stack l-stack-xl" data-astro-cid-5mutinvq style="--breakout-area: content;"> <div class="ingredient l-breakout ingredient-section-header" data-astro-cid-gfez5emt style=""> <div class="b-heading text-center" data-sb-field-path=".ingredients.0" _type="sectionHeader" _key="3740696e76f5" data-astro-cid-wk2votdk style="--heading-max: 23ch;--subheading-max: 47ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> <p class="preheading a-fade-in" data-variant="" data-sb-field-path=".preheading" data-astro-cid-wk2votdk style="--heading-max: 23ch;--subheading-max: 47ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Flexibility through primitives </p> <h2 class="heading" data-sb-field-path=".heading" data-astro-cid-wk2votdk>Experiment with primitives on your preferred framework</h2> <p class="subheading" data-sb-field-path=".subheading" data-astro-cid-wk2votdk style="--heading-max: 23ch;--subheading-max: 47ch;--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Build truly dynamic, high-performance digital experiences across any framework and any use case </p> </div> </div> <div class="ingredient l-breakout ingredient-tick-tock" data-astro-cid-gfez5emt style=""> <div class="b-tick-tock l-stack l-stack-2xl default" data-sb-field-path=".ingredients.1"> <article data-sb-field-path=".sections.0"> <div> <img src="/_astro/6dd260e34f4d456739a2e5c4d357148d5ed8a46b-560x315_1wuBxi.svg" alt="" data-sb-field-path=".image" data-astro-cid-jbhojhg7 width="560" height="315" loading="lazy" decoding="async"> </div> <div class="l-stack l-stack-medium" data-sb-field-path=".content"> <h3 data-sb-field-path=".0" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-1 font-semibold text-left"><span data-astro-cid-u4qoyrkz style="">Transform images on demand without impacting build times with Netlify Image CDN</span> </h3> <ul class="l-grid checklist" data-sb-field-path=".1.items" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><li data-sb-field-path=".0.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Ensure the most efficient image format is delivered to the requesting client through content negotiation</p> </div> </li><li data-sb-field-path=".1.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Integrate natively with image transformations for increased performance</p> </div> </li><li data-sb-field-path=".2.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Unlock Image CDN within the Netlify Platform regardless of which framework you prefer</p> </div> </li></ul><div class="cta-group | l-cluster" data-sb-field-path=".2" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: flex-start;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a data-type="text" data-icon-position="inline-end" data-inline-icon="true" data-icon-only="false" data-icon-name="arrow" id="cta-cdn-docs" data-sb-field-path=".items.0" href="https://docs.netlify.com/image-cdn/overview/" data-astro-cid-sc466a3x data-astro-cid-tcbm7f7q class="button cta-arrow-link"> <span data-astro-cid-tcbm7f7q>Learn more about Image CDN</span><span class="icon-wrapper" data-astro-cid-tcbm7f7q><svg width="0.88em" height="1em" viewBox="0 0 448 512" aria-hidden="true" data-astro-cid-tcbm7f7q data-astro-cid-patnjmll class="icon" data-icon="arrow"> <use xlink:href="#ai:local:arrow"></use> </svg></span> </a> </div> </div> </article><article data-sb-field-path=".sections.1"> <div> <img src="/_astro/409d0037cb29be4dde3fe95b1f0907707eaf0f9a-560x316_28MhyR.svg" alt="" data-sb-field-path=".image" data-astro-cid-jbhojhg7 width="560" height="316" loading="lazy" decoding="async"> </div> <div class="l-stack l-stack-medium" data-sb-field-path=".content"> <h3 data-sb-field-path=".0" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-1 font-semibold text-left"><span data-astro-cid-u4qoyrkz style="">Store and retrieve blobs with Netlify Blobs</span> </h3> <ul class="l-grid checklist" data-sb-field-path=".1.items" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><li data-sb-field-path=".0.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Ensure an integrated, zero-configuration approach to implementing multiple data stores with automated provisioning, configuration, and access controls</p> </div> </li><li data-sb-field-path=".1.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Read and write blob objects with ease using Netlify Functions or the Netlify CLI</p> </div> </li><li data-sb-field-path=".2.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Utilize blob stores in background functions where long-running processing jobs need to persist the results of computation upon completion</p> </div> </li></ul><div class="cta-group | l-cluster" data-sb-field-path=".2" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: flex-start;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a data-type="text" data-icon-position="inline-end" data-inline-icon="true" data-icon-only="false" data-icon-name="arrow" id="cta-blobs-docs" data-sb-field-path=".items.0" href="https://docs.netlify.com/blobs/overview/" data-astro-cid-sc466a3x data-astro-cid-tcbm7f7q class="button cta-arrow-link"> <span data-astro-cid-tcbm7f7q>Learn more about Blobs</span><span class="icon-wrapper" data-astro-cid-tcbm7f7q><svg width="0.88em" height="1em" viewBox="0 0 448 512" aria-hidden="true" data-astro-cid-tcbm7f7q data-astro-cid-patnjmll class="icon" data-icon="arrow"> <use xlink:href="#ai:local:arrow"></use> </svg></span> </a> </div> </div> </article><article data-sb-field-path=".sections.2"> <div> <img src="/_astro/8ec86a7e8f327ca430f09c35401f288eb0cf5a0a-560x315_2ulLzn.svg" alt="" data-sb-field-path=".image" data-astro-cid-jbhojhg7 width="560" height="315" loading="lazy" decoding="async"> </div> <div class="l-stack l-stack-medium" data-sb-field-path=".content"> <h3 data-sb-field-path=".0" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-1 font-semibold text-left"><span data-astro-cid-u4qoyrkz style="">Create dynamic digital experiences with SWR and Fine Grained Cache Control</span> </h3> <ul class="l-grid checklist" data-sb-field-path=".1.items" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><li data-sb-field-path=".0.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Handle any custom Cache-Control instructions and Netlify-CDN-Cache-Control instructions at the Edge</p> </div> </li><li data-sb-field-path=".1.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Automatically purge cache whenever you deploy to ensure the latest content is always accessed</p> </div> </li><li data-sb-field-path=".2.content" data-astro-cid-gt4yj4lj style="--grid-gap: var(--space-s);--grid-column-gap: var(--space-m);--grid-min: min(20rem, calc(100% - var(--grid-column-gap)));"><div class="prose l-stack l-stack-medium" data-sb-field-path=".0.content" data-astro-cid-cnvtppup style=""> <p>Use Cache-tags to label cached content across Netlify Edge and purge tagged content globally without affecting the rest of your website</p> </div> </li></ul><div class="cta-group | l-cluster" data-sb-field-path=".2" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: flex-start;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a data-type="text" data-icon-position="inline-end" data-inline-icon="true" data-icon-only="false" data-icon-name="arrow" id="cta-caching-docs" data-sb-field-path=".items.0" href="https://docs.netlify.com/platform/caching/" data-astro-cid-sc466a3x data-astro-cid-tcbm7f7q class="button cta-arrow-link"> <span data-astro-cid-tcbm7f7q>Learn more about Caching</span><span class="icon-wrapper" data-astro-cid-tcbm7f7q><svg width="0.88em" height="1em" viewBox="0 0 448 512" aria-hidden="true" data-astro-cid-tcbm7f7q data-astro-cid-patnjmll class="icon" data-icon="arrow"> <use xlink:href="#ai:local:arrow"></use> </svg></span> </a> </div> </div> </article> </div> </div> </div> </section> <section class="pancake | l-section" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.5" data-theme="light-gradient" data-astro-cid-5mutinvq style="--breakout-area: content;"> <picture class="pancake-graphics" data-options="" data-astro-cid-5mutinvq data-astro-cid-dxfgtee3 style="--graphic-object-fit: cover;"> </picture> <div class="pancake-content | l-stack l-stack-xl" data-astro-cid-5mutinvq style="--breakout-area: content;"> <div class="ingredient l-breakout ingredient-section-header" data-astro-cid-gfez5emt style=""> <div class="b-heading text-center" data-sb-field-path=".ingredients.0" _type="sectionHeader" _key="f24336bf8af0" data-astro-cid-wk2votdk style="--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> <p class="preheading a-fade-in" data-variant="" data-sb-field-path=".preheading" data-astro-cid-wk2votdk style="--heading-space: var(--space-s);--subheading-space: var(--space-l);--supporting-space: var(--space-s);"> Get started </p> <h3 class="heading" data-sb-field-path=".heading" data-astro-cid-wk2votdk>Here’s freedom to framework how you want to</h3> </div> </div> <div class="ingredient l-breakout ingredient-columns" data-astro-cid-gfez5emt style=""> <div class="l-grid ingredient-columns" data-sb-field-path=".ingredients.1" style="--grid-gap:var(--space-m);--grid-min:240px;--grid-align:flex-start" data-astro-cid-fsqfrxl4> <div data-sb-field-path=".columns.0" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style=""> <div class="card | l-flex-stack l-stack-medium" data-options="full-width-media" data-sb-field-path=".items.0" data-theme="light" data-astro-cid-dohjnao5> <div class="ingredient" data-astro-cid-gfez5emt style=""> <img src="/_astro/1df2a2802fd52367caf64f40b8c091137ded9938-500x300_ZR1Fu1.webp" alt="" data-sb-object-id="image-1df2a2802fd52367caf64f40b8c091137ded9938-500x300-png" data-astro-cid-jbhojhg7 width="500" height="300" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-2 font-semibold text-left"><a href="https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/next-platform-starter" id="cta-deployTemplate-nextjs" class="astro-u4qoyrkz" data-astro-cid-u4qoyrkz style=""> <span class="heading-eyebrow text--2 font-medium" data-mode="light" data-type="light" data-size="small" data-astro-cid-u4qoyrkz> Deploy with </span> <span data-astro-cid-u4qoyrkz style="">Next.JS</span> </a></h3> </div> </div> </div> </div><div data-sb-field-path=".columns.1" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style=""> <div class="card | l-flex-stack l-stack-medium" data-options="full-width-media" data-sb-field-path=".items.0" data-theme="light" data-astro-cid-dohjnao5> <div class="ingredient" data-astro-cid-gfez5emt style=""> <img src="/_astro/61aeb1f705c3d92d1a70de2bcd119b145fe78dbe-500x300_Z1MgLVQ.webp" alt="" data-sb-object-id="image-61aeb1f705c3d92d1a70de2bcd119b145fe78dbe-500x300-png" data-astro-cid-jbhojhg7 width="500" height="300" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-2 font-semibold text-left"><a href="https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/nuxt-toolbox" id="cta-deployTemplate-nuxt" class="astro-u4qoyrkz" data-astro-cid-u4qoyrkz style=""> <span class="heading-eyebrow text--2 font-medium" data-mode="light" data-type="light" data-size="small" data-astro-cid-u4qoyrkz> Deploy with </span> <span data-astro-cid-u4qoyrkz style="">Nuxt</span> </a></h3> </div> </div> </div> </div><div data-sb-field-path=".columns.2" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style=""> <div class="card | l-flex-stack l-stack-medium" data-options="full-width-media" data-sb-field-path=".items.0" data-theme="light" data-astro-cid-dohjnao5> <div class="ingredient" data-astro-cid-gfez5emt style=""> <img src="/_astro/e527c1024f95da19776452728a800b222047f907-500x300_2oRJlG.webp" alt="" data-sb-object-id="image-e527c1024f95da19776452728a800b222047f907-500x300-png" data-astro-cid-jbhojhg7 width="500" height="300" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-2 font-semibold text-left"><a href="https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/astro-toolbox?utm_campaign=template-team&utm_source=dtn-button&utm_medium=dtn-button&utm_term=astro-tt-dtn-button&utm_content=astro-tt-dtn-button" id="cta-deployTemplate-astro" class="astro-u4qoyrkz" data-astro-cid-u4qoyrkz style=""> <span class="heading-eyebrow text--2 font-medium" data-mode="light" data-type="light" data-size="small" data-astro-cid-u4qoyrkz> Deploy with </span> <span data-astro-cid-u4qoyrkz style="">Astro</span> </a></h3> </div> </div> </div> </div><div data-sb-field-path=".columns.3" class="column l-stack l-stack-medium" style="" data-astro-cid-fsqfrxl4> <div class="ingredient" data-astro-cid-gfez5emt style=""> <div class="card | l-flex-stack l-stack-medium" data-options="full-width-media" data-sb-field-path=".items.0" data-theme="light" data-astro-cid-dohjnao5> <div class="ingredient" data-astro-cid-gfez5emt style=""> <img src="/_astro/e2ef0653df7a417d7c781e01a14d81099de29478-500x300_5yrsV.webp" alt="" data-sb-object-id="image-e2ef0653df7a417d7c781e01a14d81099de29478-500x300-png" data-astro-cid-jbhojhg7 width="500" height="300" loading="lazy" decoding="async"> </div> <div class="ingredient" data-astro-cid-gfez5emt style=""> <h3 data-sb-field-path=".items.1" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-2 font-semibold text-left"><a href="https://app.netlify.com/start/deploy?repository=https://github.com/netlify/hydrogen-template#SESSION_SECRET=mock%20token&PUBLIC_STORE_DOMAIN=mock.shop" id="cta-deployTemplate-remix" class="astro-u4qoyrkz" data-astro-cid-u4qoyrkz style=""> <span class="heading-eyebrow text--2 font-medium" data-mode="light" data-type="light" data-size="small" data-astro-cid-u4qoyrkz> Deploy with </span> <span data-astro-cid-u4qoyrkz style="">Remix</span> </a></h3> </div> </div> </div> </div> </div> </div> <div class="ingredient l-breakout ingredient-logo-squares" data-astro-cid-gfez5emt style=""> <section class="logo-squares" data-sb-field-path=".ingredients.2" data-astro-cid-cgxpeooz> <div class="l-center l-stack l-stack-large" data-astro-cid-cgxpeooz> <ul class="has-sdk" data-sb-field-path=".items" data-astro-cid-cgxpeooz> <li data-sb-field-path=".0" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/fceb2bde194e2f8db2a8f3db843f25995b9cb8d1-92x82.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".1" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/e33896819621170f258a85689940ddef07f005c6-74x62.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".2" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/edc6ad80f0d27191b15406e8e66eadbd51a78ad6-28x28.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".3" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/7c6b8867dd1a5972e3fe7d20c616f03a17d5b39e-917x1000.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".4" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/4af7ddd4f7c5aafc5c6afee167cee78d4477262b-262x227.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".5" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/9c6b703ef2f230568115526a043a5463c7c34735-36x36.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".6" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/b9a4e394bb16f7dac59bb7134c889625fe95a49a-36x36.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li data-sb-field-path=".7" data-astro-cid-cgxpeooz> <div class="integration-icon | l-center-xy" data-astro-cid-cgxpeooz> <img data-sb-field-path=".logo" src="https://cdn.sanity.io/images/o0o2tn5x/marketing/92aca18c7e56899f66021e2d9f3df1082e3dac3b-75x83.svg?auto=format" data-astro-cid-cgxpeooz> </div> </li><li class="sdk | text--1" data-sb-field-path=".8" data-astro-cid-cgxpeooz> <span class="leading-tight" data-sb-field-path=".text" data-astro-cid-cgxpeooz> Head over to our docs for a full list of all 22 configurations. </span> <a data-type="text" data-icon-position="inline-end" data-inline-icon="true" data-icon-only="false" data-icon-name="arrow" data-sb-field-path=".cta" href="https://docs.netlify.com" data-astro-cid-cgxpeooz data-astro-cid-tcbm7f7q class="button cta-arrow-link"> <span data-astro-cid-tcbm7f7q>Go to Netlify docs</span><span class="icon-wrapper" data-astro-cid-tcbm7f7q><svg width="0.88em" height="1em" viewBox="0 0 448 512" aria-hidden="true" data-astro-cid-tcbm7f7q data-astro-cid-patnjmll class="icon" data-icon="arrow"> <symbol id="ai:local:arrow"><path fill="currentcolor" d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h306.7L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"/></symbol><use xlink:href="#ai:local:arrow"></use> </svg></span> </a> </li> </ul> </div> </section> </div> </div> </section> <section class="pancake | l-section pancake-margin-top-override" data-sb-field-path="0d3de7ba-cb4a-406f-8f48-4187b930b0b2:pancakes.6" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-3xl);"> <div class="pancake-content | l-stack l-stack-xl" data-astro-cid-5mutinvq style="--breakout-area: content;--margin-block-start: var(--space-3xl);"> <div class="ingredient l-breakout ingredient-heading" data-astro-cid-gfez5emt style=""> <h2 data-sb-field-path=".ingredients.0" data-astro-cid-u4qoyrkz class="heading l-stack l-stack-3xs font-heading text-4 font-semibold text-center"><span data-astro-cid-u4qoyrkz style="">Ready to try Netlify?</span> </h2> </div> <div class="ingredient l-breakout ingredient-call-to-action-group" data-astro-cid-gfez5emt style=""> <div class="cta-group | l-cluster" data-sb-field-path=".ingredients.1" data-cta-min-width="false" data-astro-cid-sc466a3x style="--cluster-justify: center;--cluster-gap: var(undefined);--cta-min-width: auto;"> <a class="button" data-type="primary" id="cta-readyToTryNetlify-requestDemo" href="/contact/?attr=cta-readyToTryNetlify-requestDemo" data-sb-field-path=".items.0" data-astro-cid-sc466a3x>Request demo</a> </div> </div> </div> </section> </div> </main> <footer class="site-footer | l-breakout l-stack" data-astro-cid-gcn2mc3v> <div class="wrapper | l-cluster" data-astro-cid-7kdedvnl> <a href="/" id="cta-footer-netlifyLogo" data-astro-cid-3ynf2cxt> <span class="visually-hidden" data-astro-cid-3ynf2cxt>Go to Netlify homepage</span> <svg class="logo" width="128" height="113" viewBox="0 0 128 113" fill="none" xmlns="http://www.w3.org/2000/svg" data-astro-cid-3ynf2cxt> <g clip-path="url(#clip0_236_138)" data-astro-cid-3ynf2cxt> <path d="M34.593 94.0509H33.3844L27.3514 88.0179V86.8094L36.5743 77.5866H42.9639L43.8158 78.4385V84.8281L34.593 94.0509Z" fill="#05BDBA" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M27.3514 25.816V24.6074L33.3844 18.5744H34.593L43.8158 27.7972V34.1868L42.9639 35.0388H36.5743L27.3514 25.816Z" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M35.8412 61.4491H0.73307L0 60.716V51.9192L0.73307 51.1861H35.8412L36.5743 51.9192V60.716L35.8412 61.4491Z" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M127.277 61.4491H92.1687L91.4356 60.716V51.9192L92.1687 51.1861H127.277L128.01 51.9192V60.716L127.277 61.4491Z" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M58.9428 27.0642V0.73307L59.6759 0H68.4727L69.2058 0.73307V27.0642L68.4727 27.7972H59.6759L58.9428 27.0642Z" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M58.9428 111.902V85.5711L59.6759 84.838H68.4727L69.2058 85.5711V111.902L68.4727 112.635H59.6759L58.9428 111.902Z" class="spark" data-astro-cid-3ynf2cxt></path> <path d="M80.4594 74.6047H71.6824L70.9493 73.8717V53.3259C70.9493 49.6705 69.5129 46.8372 65.1046 46.7382C62.836 46.6787 60.2405 46.7382 57.4668 46.8471L57.0507 47.2731V73.8618L56.3176 74.5948H47.5406L46.8075 73.8618V38.7636L47.5406 38.0305H67.2939C74.9713 38.0305 81.1925 44.2517 81.1925 51.9291V73.8717L80.4594 74.6047Z" class="text" data-astro-cid-3ynf2cxt></path> </g> <defs data-astro-cid-3ynf2cxt> <clipPath id="clip0_236_138" data-astro-cid-3ynf2cxt> <rect width="128" height="112.635" fill="white" data-astro-cid-3ynf2cxt></rect> </clipPath> </defs> </svg> </a> <ul role="list" class="social | l-cluster" data-astro-cid-7kdedvnl> <li data-astro-cid-7kdedvnl> <a id="cta-footer-git-hub" href="https://github.com/netlify" target="_blank" rel="noopener noreferrer" data-astro-cid-7kdedvnl> <svg width="20" height="20" viewBox="0 0 98 96" class="icon" data-astro-cid-7kdedvnl data-icon="github"> <symbol id="ai:local:github"><path fill="currentcolor" fill-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a47 47 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0" clip-rule="evenodd"/></symbol><use xlink:href="#ai:local:github"></use> </svg> <span class="visually-hidden" data-astro-cid-7kdedvnl>GitHub</span> </a> </li><li data-astro-cid-7kdedvnl> <a id="cta-footer-you-tube" href="https://www.youtube.com/@NetlifyApp" target="_blank" rel="noopener noreferrer" data-astro-cid-7kdedvnl> <svg width="20" height="20" viewBox="0 0 22 16" class="icon" data-astro-cid-7kdedvnl data-icon="youtube"> <symbol id="ai:local:youtube"><path fill="currentcolor" d="M10.994.524s-6.508 0-8.142.435c-.874.25-1.594.99-1.839 1.9C.59 4.536.59 8.007.59 8.007s0 3.484.424 5.134c.245.91.952 1.636 1.84 1.887 1.646.448 8.14.448 8.14.448s6.521 0 8.155-.435a2.62 2.62 0 0 0 1.826-1.887c.437-1.663.437-5.134.437-5.134s.013-3.484-.437-5.16A2.6 2.6 0 0 0 19.148.984c-1.634-.46-8.154-.46-8.154-.46M8.923 4.8l5.415 3.207L8.923 11.2z"/></symbol><use xlink:href="#ai:local:youtube"></use> </svg> <span class="visually-hidden" data-astro-cid-7kdedvnl>YouTube</span> </a> </li><li data-astro-cid-7kdedvnl> <a id="cta-footer-x-formerly-known-as-twitter" href="https://twitter.com/netlify" target="_blank" rel="noopener noreferrer" data-astro-cid-7kdedvnl> <svg width="20" height="20" viewBox="0 0 512 512" class="icon" data-astro-cid-7kdedvnl data-icon="twitter"> <symbol id="ai:local:twitter"><style>@keyframes appear{0%{opacity:0;transform:scale3d(.3,.3,.3)}20%{opacity:1;transform:scale3d(1.1,1.1,1.1)}40%{transform:scale3d(.9,.9,.9)}60%{transform:scale3d(1.03,1.03,1.03)}80%{transform:scale3d(.97,.97,.97)}to{transform:scale3d(1.001,1.001,1.001)}}</style><path fill="currentcolor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9zm-24.8 373.8h39.1L151.1 88h-42z" class="icon-twitter-x"/></symbol><use xlink:href="#ai:local:twitter"></use> </svg> <span class="visually-hidden" data-astro-cid-7kdedvnl>X (formerly known as Twitter)</span> </a> </li><li data-astro-cid-7kdedvnl> <a id="cta-footer-linked-in" href="https://www.linkedin.com/company/netlify" target="_blank" rel="noopener noreferrer" data-astro-cid-7kdedvnl> <svg width="20" height="20" viewBox="0 0 448 512" class="icon" data-astro-cid-7kdedvnl data-icon="linkedin"> <symbol id="ai:local:linkedin"><path fill="currentcolor" d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></symbol><use xlink:href="#ai:local:linkedin"></use> </svg> <span class="visually-hidden" data-astro-cid-7kdedvnl>LinkedIn</span> </a> </li><li data-astro-cid-7kdedvnl> <a id="cta-footer-discourse" href="https://answers.netlify.com/" target="_blank" rel="noopener noreferrer" data-astro-cid-7kdedvnl> <svg width="20" height="20" viewBox="0 0 24 24" class="icon" data-astro-cid-7kdedvnl data-icon="discourse"> <symbol id="ai:local:discourse"><path fill="currentcolor" d="M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0m.116 4.563a7.4 7.4 0 0 0-6.337 3.57 7.25 7.25 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.42 7.42 0 0 0 8.136-1.39 7.26 7.26 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585z"/></symbol><use xlink:href="#ai:local:discourse"></use> </svg> <span class="visually-hidden" data-astro-cid-7kdedvnl>Discourse</span> </a> </li> </ul> </div> <nav data-astro-cid-goxdehyl> <details class="section l-stack" data-variant="narrow" data-astro-cid-goxdehyl> <summary data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Why Netlify?</h2> <svg width="1em" height="1em" viewBox="0 0 512 512" class="icon icon-chevron" aria-hidden="true" data-astro-cid-goxdehyl data-icon="chevron"> <symbol id="ai:local:chevron"><path fill="currentcolor" d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"/></symbol><use xlink:href="#ai:local:chevron"></use> </svg> </summary> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-sm-why-netlify-customers" href="/customers/"> Customers </a> </li><li> <a id="cta-footer-sm-why-netlify-composable-web-platform" href="/platform/"> Composable Web Platform </a> </li><li> <a id="cta-footer-sm-why-netlify-security" href="/security/"> Security </a> </li><li> <a id="cta-footer-sm-why-netlify-agency-partner-program" href="/partners/agency/"> Agency Partner Program </a> </li><li> <a id="cta-footer-sm-why-netlify-technology-partner-program" href="/partners/technology/"> Technology Partner Program </a> </li> </ul> </details> <section class="section l-stack" data-variant="wide" data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Why Netlify?</h2> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-why-netlify-customers" href="/customers/"> Customers </a> </li><li> <a id="cta-footer-why-netlify-composable-web-platform" href="/platform/"> Composable Web Platform </a> </li><li> <a id="cta-footer-why-netlify-security" href="/security/"> Security </a> </li><li> <a id="cta-footer-why-netlify-agency-partner-program" href="/partners/agency/"> Agency Partner Program </a> </li><li> <a id="cta-footer-why-netlify-technology-partner-program" href="/partners/technology/"> Technology Partner Program </a> </li> </ul> </section> <details class="section l-stack" data-variant="narrow" data-astro-cid-goxdehyl> <summary data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Products</h2> <svg width="1em" height="1em" viewBox="0 0 512 512" class="icon icon-chevron" aria-hidden="true" data-astro-cid-goxdehyl data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </summary> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-sm-products-composable-web-platform" href="/platform/"> Composable Web Platform </a> </li><li> <a id="cta-footer-sm-products-netlify-connect" href="/platform/connect/"> Netlify Connect </a> </li><li> <a id="cta-footer-sm-products-netlify-core" href="/platform/core/"> Netlify Core </a> </li><li> <a id="cta-footer-sm-products-netlify-create" href="/platform/create/"> Netlify Create </a> </li><li> <a id="cta-footer-sm-products-netlify-sdk" href="/platform/software-development-kit/"> Netlify SDK </a> </li><li> <a id="cta-footer-sm-products-pricing" href="/pricing/"> Pricing </a> </li><li> <a id="cta-footer-sm-products-changelog" href="/changelog/"> Changelog </a> </li><li> <details class="popover" data-astro-cid-suxz6fv2> <summary id="cta-footer-sm-products-add-ons" data-astro-cid-suxz6fv2> <span data-astro-cid-suxz6fv2>Add-ons</span> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-plus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="plus"> <symbol id="ai:local:plus"><path fill="currentcolor" d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32v144H48c-17.7 0-32 14.3-32 32s14.3 32 32 32h144v144c0 17.7 14.3 32 32 32s32-14.3 32-32V288h144c17.7 0 32-14.3 32-32s-14.3-32-32-32H256z"/></symbol><use xlink:href="#ai:local:plus"></use> </svg> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-minus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="minus"> <symbol id="ai:local:minus"><path fill="currentcolor" d="M432 256c0 17.7-14.3 32-32 32H48c-17.7 0-32-14.3-32-32s14.3-32 32-32h352c17.7 0 32 14.3 32 32"/></symbol><use xlink:href="#ai:local:minus"></use> </svg> </summary> <ul role="list" data-astro-cid-suxz6fv2> <li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-products-analytics" href="/platform/core/analytics/" data-astro-cid-suxz6fv2> Analytics </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-products-functions" href="/platform/core/functions/" data-astro-cid-suxz6fv2> Functions </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-products-forms" href="/platform/core/forms/" data-astro-cid-suxz6fv2> Forms </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-products-large-media" href="/platform/core/large-media/" data-astro-cid-suxz6fv2> Large Media </a> </li> </ul> </details> </li> </ul> </details> <section class="section l-stack" data-variant="wide" data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Products</h2> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-products-composable-web-platform" href="/platform/"> Composable Web Platform </a> </li><li> <a id="cta-footer-products-netlify-connect" href="/platform/connect/"> Netlify Connect </a> </li><li> <a id="cta-footer-products-netlify-core" href="/platform/core/"> Netlify Core </a> </li><li> <a id="cta-footer-products-netlify-create" href="/platform/create/"> Netlify Create </a> </li><li> <a id="cta-footer-products-netlify-sdk" href="/platform/software-development-kit/"> Netlify SDK </a> </li><li> <a id="cta-footer-products-pricing" href="/pricing/"> Pricing </a> </li><li> <a id="cta-footer-products-changelog" href="/changelog/"> Changelog </a> </li><li> <details class="popover" data-astro-cid-suxz6fv2> <summary id="cta-footer-products-add-ons" data-astro-cid-suxz6fv2> <span data-astro-cid-suxz6fv2>Add-ons</span> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-plus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="plus"> <use xlink:href="#ai:local:plus"></use> </svg> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-minus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="minus"> <use xlink:href="#ai:local:minus"></use> </svg> </summary> <ul role="list" data-astro-cid-suxz6fv2> <li data-astro-cid-suxz6fv2> <a id="cta-footer-products-analytics" href="/platform/core/analytics/" data-astro-cid-suxz6fv2> Analytics </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-products-functions" href="/platform/core/functions/" data-astro-cid-suxz6fv2> Functions </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-products-forms" href="/platform/core/forms/" data-astro-cid-suxz6fv2> Forms </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-products-large-media" href="/platform/core/large-media/" data-astro-cid-suxz6fv2> Large Media </a> </li> </ul> </details> </li> </ul> </section> <details class="section l-stack" data-variant="narrow" data-astro-cid-goxdehyl> <summary data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Explore</h2> <svg width="1em" height="1em" viewBox="0 0 512 512" class="icon icon-chevron" aria-hidden="true" data-astro-cid-goxdehyl data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </summary> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-sm-explore-docs" href="https://docs.netlify.com/"> Docs </a> </li><li> <a id="cta-footer-sm-explore-integrations" href="/integrations/"> Integrations </a> </li><li> <a id="cta-footer-sm-explore-jamstack-book" href="/oreilly-jamstack/"> Jamstack Book </a> </li><li> <a id="cta-footer-sm-explore-community" href="https://answers.netlify.com/"> Community </a> </li><li> <a id="cta-footer-sm-explore-resources-guides" href="/resources/"> Resources & Guides </a> </li><li> <a id="cta-footer-sm-explore-remotely-interesting" href="https://remotelyinteresting.netlify.com/"> Remotely Interesting </a> </li><li> <details class="popover" data-astro-cid-suxz6fv2> <summary id="cta-footer-sm-explore-technologies" data-astro-cid-suxz6fv2> <span data-astro-cid-suxz6fv2>Technologies</span> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-plus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="plus"> <use xlink:href="#ai:local:plus"></use> </svg> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-minus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="minus"> <use xlink:href="#ai:local:minus"></use> </svg> </summary> <ul role="list" data-astro-cid-suxz6fv2> <li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-explore-jamstack" href="/jamstack/" data-astro-cid-suxz6fv2> Jamstack </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-explore-react" href="/with/react/" data-astro-cid-suxz6fv2> React </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-sm-explore-next-js" href="/with/nextjs/" data-astro-cid-suxz6fv2> Next.js </a> </li> </ul> </details> </li> </ul> </details> <section class="section l-stack" data-variant="wide" data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Explore</h2> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-explore-docs" href="https://docs.netlify.com/"> Docs </a> </li><li> <a id="cta-footer-explore-integrations" href="/integrations/"> Integrations </a> </li><li> <a id="cta-footer-explore-jamstack-book" href="/oreilly-jamstack/"> Jamstack Book </a> </li><li> <a id="cta-footer-explore-community" href="https://answers.netlify.com/"> Community </a> </li><li> <a id="cta-footer-explore-resources-guides" href="/resources/"> Resources & Guides </a> </li><li> <a id="cta-footer-explore-remotely-interesting" href="https://remotelyinteresting.netlify.com/"> Remotely Interesting </a> </li><li> <details class="popover" data-astro-cid-suxz6fv2> <summary id="cta-footer-explore-technologies" data-astro-cid-suxz6fv2> <span data-astro-cid-suxz6fv2>Technologies</span> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-plus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="plus"> <use xlink:href="#ai:local:plus"></use> </svg> <svg width="0.88em" height="1em" viewBox="0 0 448 512" class="icon icon-minus" aria-hidden="true" data-astro-cid-suxz6fv2 data-icon="minus"> <use xlink:href="#ai:local:minus"></use> </svg> </summary> <ul role="list" data-astro-cid-suxz6fv2> <li data-astro-cid-suxz6fv2> <a id="cta-footer-explore-jamstack" href="/jamstack/" data-astro-cid-suxz6fv2> Jamstack </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-explore-react" href="/with/react/" data-astro-cid-suxz6fv2> React </a> </li><li data-astro-cid-suxz6fv2> <a id="cta-footer-explore-next-js" href="/with/nextjs/" data-astro-cid-suxz6fv2> Next.js </a> </li> </ul> </details> </li> </ul> </section> <details class="section l-stack" data-variant="narrow" data-astro-cid-goxdehyl> <summary data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Company</h2> <svg width="1em" height="1em" viewBox="0 0 512 512" class="icon icon-chevron" aria-hidden="true" data-astro-cid-goxdehyl data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </summary> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-sm-company-blog" href="/blog/"> Blog </a> </li><li> <a id="cta-footer-sm-company-about" href="/about/"> About </a> </li><li> <a id="cta-footer-sm-company-careers" href="/careers/"> Careers </a> </li><li> <a id="cta-footer-sm-company-compose-conference" href="/conference/"> Compose Conference </a> </li><li> <a id="cta-footer-sm-company-code-of-conduct" href="/code-of-conduct/"> Code of Conduct </a> </li><li> <a id="cta-footer-sm-company-press" href="/press/"> Press </a> </li><li> <a id="cta-footer-sm-company-jamstack-fund" href="/jamstack-fund/"> Jamstack Fund </a> </li><li> <a id="cta-footer-sm-company-netlify-store" href="https://swag.netlify.com/"> Netlify Store </a> </li><li> <a id="cta-footer-sm-company-sustainability" href="/sustainability/"> Sustainability </a> </li> </ul> </details> <section class="section l-stack" data-variant="wide" data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Company</h2> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-company-blog" href="/blog/"> Blog </a> </li><li> <a id="cta-footer-company-about" href="/about/"> About </a> </li><li> <a id="cta-footer-company-careers" href="/careers/"> Careers </a> </li><li> <a id="cta-footer-company-compose-conference" href="/conference/"> Compose Conference </a> </li><li> <a id="cta-footer-company-code-of-conduct" href="/code-of-conduct/"> Code of Conduct </a> </li><li> <a id="cta-footer-company-press" href="/press/"> Press </a> </li><li> <a id="cta-footer-company-jamstack-fund" href="/jamstack-fund/"> Jamstack Fund </a> </li><li> <a id="cta-footer-company-netlify-store" href="https://swag.netlify.com/"> Netlify Store </a> </li><li> <a id="cta-footer-company-sustainability" href="/sustainability/"> Sustainability </a> </li> </ul> </section> <details class="section l-stack" data-variant="narrow" data-astro-cid-goxdehyl> <summary data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Contact Us</h2> <svg width="1em" height="1em" viewBox="0 0 512 512" class="icon icon-chevron" aria-hidden="true" data-astro-cid-goxdehyl data-icon="chevron"> <use xlink:href="#ai:local:chevron"></use> </svg> </summary> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-sm-contact-us-sales" href="/contact/?attr=homepage&ref=sales&id=cta-footer-sales"> Sales </a> </li><li> <a id="cta-footer-sm-contact-us-support" href="/support/"> Support </a> </li><li> <a id="cta-footer-sm-contact-us-status" href="https://netlifystatus.com/"> Status </a> </li><li> <a id="cta-footer-sm-contact-us-forums" href="https://answers.netlify.com/"> Forums </a> </li><li> <a id="cta-footer-sm-contact-us-hire-an-agency" href="/agency-directory/"> Hire an Agency </a> </li> </ul> </details> <section class="section l-stack" data-variant="wide" data-astro-cid-goxdehyl> <h2 class="text-0 font-bold tracking-tight" data-astro-cid-goxdehyl>Contact Us</h2> <ul class="l-stack l-stack-xs" role="list"> <li> <a id="cta-footer-contact-us-sales" href="/contact/?attr=homepage&ref=sales&id=cta-footer-sales"> Sales </a> </li><li> <a id="cta-footer-contact-us-support" href="/support/"> Support </a> </li><li> <a id="cta-footer-contact-us-status" href="https://netlifystatus.com/"> Status </a> </li><li> <a id="cta-footer-contact-us-forums" href="https://answers.netlify.com/"> Forums </a> </li><li> <a id="cta-footer-contact-us-hire-an-agency" href="/agency-directory/"> Hire an Agency </a> </li> </ul> </section> </nav> <section class="newsletter-form | l-stack l-stack-small l-center" data-astro-cid-gtbzbcej> <h2 class="text-0" data-astro-cid-gtbzbcej>Stay up to date with Netlify news</h2> <article class="hubspot-form-wrapper | l-overlay-stack l-center"><div id="hubspot-form-site-footer" data-hubspot-form-id="52611e5e-cc55-4960-bf4a-a2adb36291f6"></div><form method="POST" class="hs-form l-cluster" action="https://www.netlify.com/thanks-for-signing-up/" data-astro-cid-gtbzbcej><div class="hs-form-field" class="hs-fieldtype-input"><label for="email">Email</label><input name="email" id="email" required value="" type="email"></div><div class="hs-form-field" class="hs-fieldtype-input" hidden=""><label for="utm_campaign">UTM Campaign</label><input name="utm_campaign" id="utm_campaign" value="" type="hidden"></div><div class="hs-form-field" class="hs-fieldtype-input" hidden=""><label for="utm_content">UTM Content</label><input name="utm_content" id="utm_content" value="" type="hidden"></div><div class="hs-form-field" class="hs-fieldtype-input" hidden=""><label for="utm_medium">UTM Medium</label><input name="utm_medium" id="utm_medium" value="" type="hidden"></div><div class="hs-form-field" class="hs-fieldtype-input" hidden=""><label for="utm_source">UTM Source</label><input name="utm_source" id="utm_source" value="" type="hidden"></div><div class="hs-form-field" class="hs-fieldtype-input" hidden=""><label for="utm_term">UTM Term</label><input name="utm_term" id="utm_term" value="" type="hidden"></div><input type="hidden" name="hubspotformid" value="52611e5e-cc55-4960-bf4a-a2adb36291f6"><input type="hidden" name="hubspotutk" value=""><div class="hs-submit"><input type="submit" data-type="secondary" value="Subscribe"></div></form></article><script>(function(){const formId = "52611e5e-cc55-4960-bf4a-a2adb36291f6"; const submitBtnVariant = "secondary"; if (formId && submitBtnVariant) { if (window?.hsFormButtons) { window.hsFormButtons[formId] = `button-${submitBtnVariant}`; } else { window.hsFormButtons = { [formId]: `button-${submitBtnVariant}`, }; } } })();</script> </section> <div class="wrapper | l-cluster" data-astro-cid-k5rle6j4> <ul role="list" class="legal | l-cluster" data-astro-cid-k5rle6j4> <li data-astro-cid-k5rle6j4> <a id="cta-legal-footer-trust-center" href="/trust-center/" data-astro-cid-k5rle6j4> Trust Center </a> </li><li data-astro-cid-k5rle6j4> <a id="cta-legal-footer-privacy" href="/privacy/" data-astro-cid-k5rle6j4> Privacy </a> </li><li data-astro-cid-k5rle6j4> <a id="cta-legal-footer-gdpr-ccpa" href="/gdpr-ccpa/" data-astro-cid-k5rle6j4> GDPR/CCPA </a> </li><li data-astro-cid-k5rle6j4> <a id="cta-legal-footer-abuse" href="mailto:fraud@netlify.com?subject=Abuse%20report&body=Please%20include%20the%20site%20URL%20and%20reason%20for%20your%20report%2C%20and%20we%20will%20reply%20promptly." data-astro-cid-k5rle6j4> Abuse </a> </li><li data-astro-cid-k5rle6j4> <button type="button" id="cta-legal-footer-cookie-settings-toggle" data-type="reset" data-astro-cid-k5rle6j4> Cookie Settings </button> </li> </ul> <p class="copyright" data-astro-cid-k5rle6j4>© 2024 Netlify</p> </div> </footer> <!-- required for all HubSpot forms --> <script defer src="https://js.hsforms.net/forms/v2.js"></script> <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/7477936.js"></script> </body> </html>