CINXE.COM

<!DOCTYPE html><html class="__variable_b4bd81 __variable_4d318d" lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta content="width=device-width, initial-scale=1.0" name="viewport" data-next-head=""/><title data-next-head="">Next.js Portfolio with Blog</title><link href="https://vercel.com/templates/next.js/nextjs-portfolio" rel="canonical" data-next-head=""/><meta content="summary_large_image" name="twitter:card" data-next-head=""/><meta content="https://vercel.com/api/templates/og?title=Next.js+Portfolio+with+Blog&amp;description=Easily+create+a+portfolio+with+Next.js+and+Markdown.&amp;framework=Next.js&amp;image=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png%3Ffm%3Dpng" name="twitter:image" data-next-head=""/><meta content="Next.js Portfolio with Blog" property="og:title" data-next-head=""/><meta content="https://vercel.com/templates/next.js/nextjs-portfolio" property="og:url" data-next-head=""/><meta content="Easily create a portfolio with Next.js and Markdown." name="description" data-next-head=""/><meta content="Easily create a portfolio with Next.js and Markdown." property="og:description" data-next-head=""/><meta content="https://vercel.com/api/templates/og?title=Next.js+Portfolio+with+Blog&amp;description=Easily+create+a+portfolio+with+Next.js+and+Markdown.&amp;framework=Next.js&amp;image=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png%3Ffm%3Dpng" property="og:image" data-next-head=""/><meta content="1WbTDaEUzUq0auTdJiuOkn" name="content-id" data-next-head=""/><meta content="max-snippet:-1, max-image-preview:large, max-video-preview:-1" name="robots" data-next-head=""/><meta content="en" http-equiv="Content-Language" data-next-head=""/><meta content="dark light" name="color-scheme" data-next-head=""/><link crossorigin="anonymous" href="https://assets.vercel.com" rel="preconnect" data-next-head=""/><link crossorigin="anonymous" href="https://avatars.githubusercontent.com" rel="preconnect" data-next-head=""/><meta content="@vercel" name="twitter:site" data-next-head=""/><meta content="Vercel" name="apple-mobile-web-app-title" data-next-head=""/><meta content="#ffffff" name="theme-color" data-next-head=""/><meta content="#ffffff" name="msapplication-TileColor" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-57x57.png" rel="apple-touch-icon" sizes="57x57" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-60x60.png" rel="apple-touch-icon" sizes="60x60" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-72x72.png" rel="apple-touch-icon" sizes="72x72" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-76x76.png" rel="apple-touch-icon" sizes="76x76" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-114x114.png" rel="apple-touch-icon" sizes="114x114" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-120x120.png" rel="apple-touch-icon" sizes="120x120" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-144x144.png" rel="apple-touch-icon" sizes="144x144" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-152x152.png" rel="apple-touch-icon" sizes="152x152" data-next-head=""/><link fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180" data-next-head=""/><link href="https://assets.vercel.com/image/upload/front/favicon/vercel/favicon.ico" rel="icon shortcut" type="image/x-icon" data-next-head=""/><link crossorigin="use-credentials" fetchpriority="low" href="/site.webmanifest" rel="manifest" data-next-head=""/><link color="#000000" fetchpriority="low" href="https://assets.vercel.com/image/upload/front/favicon/vercel/safari-pinned-tab.svg" rel="mask-icon" data-next-head=""/><link href="/atom" rel="alternate" title="Vercel News" type="application/atom+xml" data-next-head=""/><link rel="preload" href="/_next/static/media/569ce4b8f30dc480-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/93f479601ee12b01-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/93f13d4b34b1b7b0.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" as="style"/><link rel="preload" href="/_next/static/css/9161a78f1c6fa875.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" as="style"/><link rel="preload" href="/_next/static/css/24e9cab1d307cd6d.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" as="style"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" imageSizes="100vw" data-next-head=""/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1x, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2x" data-next-head=""/><script data-next-head="">(()=>{let e;let t=localStorage?.getItem("zeit-theme");e="dark"===t||!t&&window.matchMedia("(prefers-color-scheme: dark)").matches?"#0a0a0a":"#ffffff";let r=Array.from(document.querySelectorAll('meta[name="theme-color"]'));if(0===r.length){let e=document.createElement("meta");e.setAttribute("name","theme-color"),document.head.appendChild(e),r.push(e)}r.forEach(t=>{t.setAttribute("content",e)})})();</script><link rel="stylesheet" href="/_next/static/css/93f13d4b34b1b7b0.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" data-n-g=""/><link rel="stylesheet" href="/_next/static/css/9161a78f1c6fa875.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" data-n-p=""/><link rel="stylesheet" href="/_next/static/css/24e9cab1d307cd6d.css?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"></script><script src="/_next/static/chunks/webpack-943e93afd445a48f.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/framework-0e605bc7322939d4.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/main-e526fce5ae52680e.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/pages/_app-14e9f42dac09b02f.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/ea75f4f8-7d0beb07dfa9301e.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/97968-b2ae70bac2625dfe.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/99551-ec2e5b7402d5a52f.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/6519-cac7709c860438cf.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/36533-82e31f141e1406a4.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/30215-11c89ed6ccc85fd7.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/19103-de3c31d711e620a2.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/22155-c26709693a0323dc.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/87995-c8e8de0e2b864e8a.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/96980-c43c2fa169d9c0f4.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/83346-7e287f3ee0481e2b.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/10409-f30b4f05a3338e88.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/35869-ef36a7bf5e461d1a.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/17871-2f59a20d0fb511cb.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/chunks/pages/templates/%5B%5B...slug%5D%5D-1d758091b40da2dc.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/Im0heFU3fYXCc-N1v06FJ/_buildManifest.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><script src="/_next/static/Im0heFU3fYXCc-N1v06FJ/_ssgManifest.js?dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC" defer=""></script><style id="__jsx-4164124281">.geist-container.jsx-4164124281>*{--gap-ratio:1}</style><style id="__jsx-1346519554">.geist-list.jsx-1346519554{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:var(--geist-gap-half-negative);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.geist-list.jsx-1346519554>.list_geistListItem__CkgRr{padding:var(--geist-gap-half);-webkit-box-flex:0;-webkit-flex-grow:0;-moz-box-flex:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;min-width:0}@media screen and (max-width:960px){.geist-list.jsx-1346519554>.list_geistListItem__CkgRr{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%}}@media screen and (max-width:600px){.geist-list.jsx-1346519554>.list_geistListItem__CkgRr{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%}}</style></head><body class="tailwind tailwind-no-preflight"><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" imageSizes="100vw"/><link rel="preload" as="image" imageSrcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1x, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2x"/><div id="__next"><!--$--><!--/$--><!--$--><!--/$--><a class="skip-nav-link_skipLink__M2lut" href="#geist-skip-nav" tabindex="0">Skip to content</a><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light-theme','dark-theme');var e=localStorage.getItem('zeit-theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark-theme')}else{d.style.colorScheme = 'light';c.add('light-theme')}}else if(e){var x={"light":"light-theme","dark":"dark-theme"};c.add(x[e]|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><!--$--><!--/$--><!--$--><!--/$--><span></span><!--$--><!--/$--><div class="geist-page"><span class="dark-theme invert-theme"></span><div class="min-h-vh relative"><div class="header_wrapper__u5Opu header_noBorder__NhgIY header_transparent__RdGAS" data-navigation-header="" data-variant="elevated"><header class="header_header__dGL52" style="--full:var(--ds-page-width-with-margin)"><div class="header_nav_first__PxyqC"><div><!--$--><a href="/home" aria-controls="menu-:R1apbid3am:" aria-expanded="false" aria-label="home" data-testid="header/navbar/logo" id="menu-button-:R1apbid3amH1:" data-zone="vercel-marketing" class="link_link__hbWKh logo-context-menu-button_button__EKpor"><svg aria-label="Vercel logotype" height="22" role="img" viewBox="0 0 284 64"><path d="M141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zm117.14-14.5c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zm-39.03 3.5c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9v-46h9zM37.59.25l36.95 64H.64l36.95-64zm92.38 5l-27.71 48-27.71-48h10.39l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="var(--geist-foreground)"></path></svg></a><!--/$--><!--$--><!--/$--><style> @media (min-width: 1151px) { #mobile-menu-toggle { display: none; } } </style><div class="mobile-menu_root__PX9iM" id="mobile-menu-toggle"><button aria-label="Open menu" class="toggle_mobileMenuToggle__W5y02" data-expanded="false" disabled="" style="opacity:0" type="button"><div class="toggle_bar__ySl8w toggle_disabled__4oWP9" data-position="top"></div><div class="toggle_bar__ySl8w toggle_disabled__4oWP9" data-position="bottom"></div></button></div></div><div class="header_nav_second__cIFf5"><nav aria-label="Main" data-orientation="horizontal" dir="ltr" class="navigation-menu_root__HT1ea" style="--indicator-height:10px;--arrow-offset:-10px;--content-width:-16px;--left-offset:calc(-1 * var(--gap-between-logo-and-nav) - 98px)"><div aria-hidden="true" class="navigation-menu_tabsHighlight__4PsZm"></div><div style="position:relative"><ul data-orientation="horizontal" class="navigation-menu_list__1vwjh" dir="ltr"><li><button id="radix-:Ripbid3am:-trigger-features" data-state="closed" aria-expanded="false" aria-controls="radix-:Ripbid3am:-content-features" class="navigation-menu_trigger__AmZ48" value="features" data-active="closed" data-radix-collection-item="">Products<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.0607 6.74999L11.5303 7.28032L8.7071 10.1035C8.31657 10.4941 7.68341 10.4941 7.29288 10.1035L4.46966 7.28032L3.93933 6.74999L4.99999 5.68933L5.53032 6.21966L7.99999 8.68933L10.4697 6.21966L11 5.68933L12.0607 6.74999Z" fill="currentColor"/></svg></span></button><div id="radix-:Ripbid3am:-content-features" aria-labelledby="radix-:Ripbid3am:-trigger-features" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="header-dx">DX Platform</h5><ul aria-describedby="header-dx" class="navigation-menu_columnReset__5wkHH"><li><a href="/products/previews" data-hover-icon="false" data-feature="Previews" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 2.5H1.5V5.005H14.5V2.5ZM14.5 6.255H6.245V13.5H13.5C14.0523 13.5 14.5 13.0523 14.5 12.5V6.255ZM4.995 6.255H1.5V12.5C1.5 13.0523 1.94772 13.5 2.5 13.5H4.995V6.255ZM1.5 1H0V2.5V12.5C0 13.8807 1.11929 15 2.5 15H13.5C14.8807 15 16 13.8807 16 12.5V2.5V1H14.5H1.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Previews</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Helping teams ship 6× faster</p></div></a></li><li><a href="/ai" data-hover-icon="false" data-feature="AI" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M2.5 0.5V0H3.5V0.5C3.5 1.60457 4.39543 2.5 5.5 2.5H6V3V3.5H5.5C4.39543 3.5 3.5 4.39543 3.5 5.5V6H3H2.5V5.5C2.5 4.39543 1.60457 3.5 0.5 3.5H0V3V2.5H0.5C1.60457 2.5 2.5 1.60457 2.5 0.5Z" fill="currentColor"/> <path d="M14.5 4.5V5H13.5V4.5C13.5 3.94772 13.0523 3.5 12.5 3.5H12V3V2.5H12.5C13.0523 2.5 13.5 2.05228 13.5 1.5V1H14H14.5V1.5C14.5 2.05228 14.9477 2.5 15.5 2.5H16V3V3.5H15.5C14.9477 3.5 14.5 3.94772 14.5 4.5Z" fill="currentColor"/> <path d="M8.40706 4.92939L8.5 4H9.5L9.59294 4.92939C9.82973 7.29734 11.7027 9.17027 14.0706 9.40706L15 9.5V10.5L14.0706 10.5929C11.7027 10.8297 9.82973 12.7027 9.59294 15.0706L9.5 16H8.5L8.40706 15.0706C8.17027 12.7027 6.29734 10.8297 3.92939 10.5929L3 10.5V9.5L3.92939 9.40706C6.29734 9.17027 8.17027 7.29734 8.40706 4.92939Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Powering breakthroughs</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="header-managed-infrastructure">Managed Infrastructure</h5><ul aria-describedby="header-managed-infrastructure" class="navigation-menu_columnReset__5wkHH"><li><a href="/products/rendering" data-hover-icon="false" data-feature="Rendering" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.268 14.0934C11.9051 13.4838 13.2303 12.2333 13.9384 10.6469C13.1192 10.7941 12.2138 10.9111 11.2469 10.9925C11.0336 12.2005 10.695 13.2621 10.268 14.0934ZM8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM8.48347 14.4823C8.32384 14.494 8.16262 14.5 8 14.5C7.83738 14.5 7.67616 14.494 7.51654 14.4823C7.5132 14.4791 7.50984 14.4759 7.50647 14.4726C7.2415 14.2165 6.94578 13.7854 6.67032 13.1558C6.41594 12.5744 6.19979 11.8714 6.04101 11.0778C6.67605 11.1088 7.33104 11.125 8 11.125C8.66896 11.125 9.32395 11.1088 9.95899 11.0778C9.80021 11.8714 9.58406 12.5744 9.32968 13.1558C9.05422 13.7854 8.7585 14.2165 8.49353 14.4726C8.49016 14.4759 8.4868 14.4791 8.48347 14.4823ZM11.4187 9.72246C12.5137 9.62096 13.5116 9.47245 14.3724 9.28806C14.4561 8.87172 14.5 8.44099 14.5 8C14.5 7.55901 14.4561 7.12828 14.3724 6.71194C13.5116 6.52755 12.5137 6.37904 11.4187 6.27753C11.4719 6.83232 11.5 7.40867 11.5 8C11.5 8.59133 11.4719 9.16768 11.4187 9.72246ZM10.1525 6.18401C10.2157 6.75982 10.25 7.36805 10.25 8C10.25 8.63195 10.2157 9.24018 10.1525 9.81598C9.46123 9.85455 8.7409 9.875 8 9.875C7.25909 9.875 6.53877 9.85455 5.84749 9.81598C5.7843 9.24018 5.75 8.63195 5.75 8C5.75 7.36805 5.7843 6.75982 5.84749 6.18401C6.53877 6.14545 7.25909 6.125 8 6.125C8.74091 6.125 9.46123 6.14545 10.1525 6.18401ZM11.2469 5.00748C12.2138 5.08891 13.1191 5.20593 13.9384 5.35306C13.2303 3.7667 11.9051 2.51622 10.268 1.90662C10.695 2.73788 11.0336 3.79953 11.2469 5.00748ZM8.48347 1.51771C8.4868 1.52089 8.49016 1.52411 8.49353 1.52737C8.7585 1.78353 9.05422 2.21456 9.32968 2.84417C9.58406 3.42562 9.80021 4.12856 9.95899 4.92219C9.32395 4.89118 8.66896 4.875 8 4.875C7.33104 4.875 6.67605 4.89118 6.04101 4.92219C6.19978 4.12856 6.41594 3.42562 6.67032 2.84417C6.94578 2.21456 7.2415 1.78353 7.50647 1.52737C7.50984 1.52411 7.51319 1.52089 7.51653 1.51771C7.67615 1.50597 7.83738 1.5 8 1.5C8.16262 1.5 8.32384 1.50597 8.48347 1.51771ZM5.73202 1.90663C4.0949 2.51622 2.76975 3.7667 2.06159 5.35306C2.88085 5.20593 3.78617 5.08891 4.75309 5.00748C4.96639 3.79953 5.30497 2.73788 5.73202 1.90663ZM4.58133 6.27753C3.48633 6.37904 2.48837 6.52755 1.62761 6.71194C1.54392 7.12828 1.5 7.55901 1.5 8C1.5 8.44099 1.54392 8.87172 1.62761 9.28806C2.48837 9.47245 3.48633 9.62096 4.58133 9.72246C4.52807 9.16768 4.5 8.59133 4.5 8C4.5 7.40867 4.52807 6.83232 4.58133 6.27753ZM4.75309 10.9925C3.78617 10.9111 2.88085 10.7941 2.06159 10.6469C2.76975 12.2333 4.0949 13.4838 5.73202 14.0934C5.30497 13.2621 4.96639 12.2005 4.75309 10.9925Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Rendering</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Fast, scalable, and reliable</p></div></a></li><li><a href="/products/observability" data-hover-icon="false" data-feature="Observability" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 1V1.75V14.25V15H7.25V14.25V1.75V1H8.75ZM3.5 9V9.75V14.25V15H2V14.25V9.75V9H3.5ZM14 6.75V6H12.5V6.75V14.25V15H14V14.25V6.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Observability</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Trace every step</p></div></a></li><li><a href="/security" data-hover-icon="false" data-feature="Security" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 4.057V9.52717C3.5 10.9221 4.27429 12.2018 5.50997 12.849L8 14.1533L10.49 12.849C11.7257 12.2018 12.5 10.9221 12.5 9.52717V4.057C12.3094 4.00405 12.1074 3.9513 11.8932 3.89539C11.746 3.85699 11.5932 3.81709 11.4344 3.7746C10.8476 3.61758 10.204 3.43066 9.61101 3.17017C9.02666 2.91351 8.44336 2.56529 8 2.05704C7.55664 2.56529 6.97334 2.91351 6.38899 3.17017C5.79596 3.43066 5.15243 3.61758 4.5656 3.7746C4.40682 3.81709 4.25396 3.85699 4.10684 3.89539C3.89262 3.9513 3.69055 4.00405 3.5 4.057ZM7.25 0C7.25 0.467199 7.10537 0.796772 6.87802 1.06132C6.6357 1.34329 6.26955 1.58432 5.78576 1.79681C5.30375 2.00853 4.75351 2.17155 4.17787 2.32558C4.04421 2.36134 3.90727 2.39707 3.76932 2.43305C3.33687 2.54586 2.89458 2.66124 2.51283 2.78849L2 2.95943V3.5V9.52717C2 11.4801 3.084 13.2716 4.81396 14.1778L7.65199 15.6644L8 15.8467L8.34801 15.6644L11.186 14.1778C12.916 13.2716 14 11.4801 14 9.52717V3.5V2.95943L13.4872 2.78849C13.1054 2.66124 12.6631 2.54586 12.2307 2.43305C12.0927 2.39707 11.9558 2.36134 11.8221 2.32558C11.2465 2.17155 10.6962 2.00853 10.2142 1.79681C9.73045 1.58432 9.3643 1.34329 9.12198 1.06132C8.89463 0.796772 8.75 0.467199 8.75 0H7.25Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Security</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Scale without compromising</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="header-open-source">Open Source</h5><ul aria-describedby="header-managed-infrastructure" class="navigation-menu_columnReset__5wkHH"><li><a href="/frameworks/nextjs" data-hover-icon="true" data-feature="Next.js" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_53_108)"> <circle cx="8" cy="8" r="7.375" fill="black" stroke="var(--ds-gray-1000)" strokeWidth="1.25" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.63 11V5" stroke="url(#paint0_linear_53_108Rldqdipbid3am)" strokeWidth="1.25" stroke-miterlimit="1.41421"/> <path fill-rule="evenodd" cliprule="evenodd" d="M5.995 5.00087V5H4.745V11H5.995V6.96798L12.3615 14.7076C12.712 14.4793 13.0434 14.2242 13.353 13.9453L5.99527 5.00065L5.995 5.00087Z" fill="url(#paint1_linear_53_108Rldqdipbid3am)"/> </g> <defs> <linearGradient id="paint0_linear_53_108Rldqdipbid3am" x1="11.13" y1="5" x2="11.13" y2="11" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="0.609375" stop-color="white" stop-opacity="0.57"/> <stop offset="0.796875" stop-color="white" stop-opacity="0"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <linearGradient id="paint1_linear_53_108Rldqdipbid3am" x1="9.9375" y1="9.0625" x2="13.5574" y2="13.3992" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <clipPath id="clip0_53_108"> <rect width="16" height="16" fill="red"/> </clipPath> </defs></svg></div><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA navigation-menu_iconHover__D__VG" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_53_108)"> <circle cx="8" cy="8" r="7.375" fill="black" stroke="var(--ds-gray-1000)" strokeWidth="1.25" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10.63 11V5" stroke="url(#paint0_linear_53_108R15dqdipbid3am)" strokeWidth="1.25" stroke-miterlimit="1.41421"/> <path fill-rule="evenodd" cliprule="evenodd" d="M5.995 5.00087V5H4.745V11H5.995V6.96798L12.3615 14.7076C12.712 14.4793 13.0434 14.2242 13.353 13.9453L5.99527 5.00065L5.995 5.00087Z" fill="url(#paint1_linear_53_108R15dqdipbid3am)"/> </g> <defs> <linearGradient id="paint0_linear_53_108R15dqdipbid3am" x1="11.13" y1="5" x2="11.13" y2="11" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="0.609375" stop-color="white" stop-opacity="0.57"/> <stop offset="0.796875" stop-color="white" stop-opacity="0"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <linearGradient id="paint1_linear_53_108R15dqdipbid3am" x1="9.9375" y1="9.0625" x2="13.5574" y2="13.3992" gradientUnits="userSpaceOnUse"> <stop stop-color="white"/> <stop offset="1" stop-color="white" stop-opacity="0"/> </linearGradient> <clipPath id="clip0_53_108"> <rect width="16" height="16" fill="red"/> </clipPath> </defs></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Next.js</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The native Next.js platform</p></div></a></li><li><a data-hover-icon="true" data-feature="Turborepo" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/solutions/turborepo"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_872_3188)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 0V2C11.3137 2 14 4.68629 14 8C14 11.1453 11.5798 13.7254 8.5 13.9795V15.9846C12.6854 15.7265 16 12.2504 16 8C16 3.58172 12.4183 0 8 0ZM7.5 15.9846V13.9795C6.2188 13.8738 5.05174 13.3655 4.12558 12.5815L2.70769 13.9994C4.00133 15.1415 5.66717 15.8716 7.5 15.9846ZM2.00058 13.2923C0.755509 11.882 0 10.0292 0 8H2C2 9.47685 2.53358 10.8291 3.41847 11.8744L2.00058 13.2923Z" fill="url(#paint0_linear_872_3188)"/> <rect x="4.5" y="4.5" width="7" height="7" rx="3.5" stroke="var(--ds-gray-1000)" fill="transparent" stroke-width="2"/> </g> <defs> <linearGradient id="paint0_linear_872_3188" x1="8.68832" y1="1.98437" x2="1.79792" y2="8.82805" gradientUnits="userSpaceOnUse"> <stop stop-color="#0096FF"/> <stop offset="1" stop-color="#FF1E56"/> </linearGradient> <clipPath id="clip0_872_3188"> <rect width="16" height="16" fill="white"/> </clipPath> </defs></svg></div><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA navigation-menu_iconHover__D__VG" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg class="invert-theme" data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><g clip-path="url(#clip0_872_3188)"> <path fill-rule="evenodd" clip-rule="evenodd" d="M8 0V2C11.3137 2 14 4.68629 14 8C14 11.1453 11.5798 13.7254 8.5 13.9795V15.9846C12.6854 15.7265 16 12.2504 16 8C16 3.58172 12.4183 0 8 0ZM7.5 15.9846V13.9795C6.2188 13.8738 5.05174 13.3655 4.12558 12.5815L2.70769 13.9994C4.00133 15.1415 5.66717 15.8716 7.5 15.9846ZM2.00058 13.2923C0.755509 11.882 0 10.0292 0 8H2C2 9.47685 2.53358 10.8291 3.41847 11.8744L2.00058 13.2923Z" fill="url(#paint0_linear_872_3188)"/> <rect x="4.5" y="4.5" width="7" height="7" rx="3.5" stroke="var(--ds-gray-1000)" fill="transparent" stroke-width="2"/> </g> <defs> <linearGradient id="paint0_linear_872_3188" x1="8.68832" y1="1.98437" x2="1.79792" y2="8.82805" gradientUnits="userSpaceOnUse"> <stop stop-color="#0096FF"/> <stop offset="1" stop-color="#FF1E56"/> </linearGradient> <clipPath id="clip0_872_3188"> <rect width="16" height="16" fill="white"/> </clipPath> </defs></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Turborepo</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Speed with Enterprise scale</p></div></a></li><li><a class="navigation-menu_menuSubLink__jde_U undefined" data-hover-icon="false" data-feature="AI SDK" href="https://sdk.vercel.ai/" data-radix-collection-item=""><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0.154663L8.34601 0.334591L14.596 3.58459L15 3.79466V4.25V11.75V12.2053L14.596 12.4154L8.34601 15.6654L8 15.8453L7.65399 15.6654L1.40399 12.4154L1 12.2053V11.75V4.25V3.79466L1.40399 3.58459L7.65399 0.334591L8 0.154663ZM2.5 11.2947V5.44058L7.25 7.81559V13.7647L2.5 11.2947ZM8.75 13.7647L13.5 11.2947V5.44056L8.75 7.81556V13.7647ZM8 1.84534L12.5766 4.22519L7.99998 6.51352L3.42335 4.2252L8 1.84534Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI SDK</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The AI Toolkit for TypeScript</p></div></a></li></ul></li></ul></div></li><li><button id="radix-:Ripbid3am:-trigger-solutions" data-state="closed" aria-expanded="false" aria-controls="radix-:Ripbid3am:-content-solutions" class="navigation-menu_trigger__AmZ48" value="solutions" data-active="closed" data-radix-collection-item="">Solutions<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.0607 6.74999L11.5303 7.28032L8.7071 10.1035C8.31657 10.4941 7.68341 10.4941 7.29288 10.1035L4.46966 7.28032L3.93933 6.74999L4.99999 5.68933L5.53032 6.21966L7.99999 8.68933L10.4697 6.21966L11 5.68933L12.0607 6.74999Z" fill="currentColor"/></svg></span></button><div id="radix-:Ripbid3am:-content-solutions" aria-labelledby="radix-:Ripbid3am:-trigger-solutions" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="header-use-case">Use Cases</h5><ul aria-describedby="header-use-case" class="navigation-menu_links__VRoNf navigation-menu_columnReset__5wkHH"><li><a href="/solutions/ai-apps" data-hover-icon="false" data-feature="AI Apps" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M2.5 0.5V0H3.5V0.5C3.5 1.60457 4.39543 2.5 5.5 2.5H6V3V3.5H5.5C4.39543 3.5 3.5 4.39543 3.5 5.5V6H3H2.5V5.5C2.5 4.39543 1.60457 3.5 0.5 3.5H0V3V2.5H0.5C1.60457 2.5 2.5 1.60457 2.5 0.5Z" fill="currentColor"/> <path d="M14.5 4.5V5H13.5V4.5C13.5 3.94772 13.0523 3.5 12.5 3.5H12V3V2.5H12.5C13.0523 2.5 13.5 2.05228 13.5 1.5V1H14H14.5V1.5C14.5 2.05228 14.9477 2.5 15.5 2.5H16V3V3.5H15.5C14.9477 3.5 14.5 3.94772 14.5 4.5Z" fill="currentColor"/> <path d="M8.40706 4.92939L8.5 4H9.5L9.59294 4.92939C9.82973 7.29734 11.7027 9.17027 14.0706 9.40706L15 9.5V10.5L14.0706 10.5929C11.7027 10.8297 9.82973 12.7027 9.59294 15.0706L9.5 16H8.5L8.40706 15.0706C8.17027 12.7027 6.29734 10.8297 3.92939 10.5929L3 10.5V9.5L3.92939 9.40706C6.29734 9.17027 8.17027 7.29734 8.40706 4.92939Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">AI Apps</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Deploy at the speed of AI</p></div></a></li><li><a href="/solutions/composable-commerce" data-hover-icon="false" data-feature="Composable Commerce" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.7496 1.89953C13.2746 1.32956 12.571 1 11.8291 1H4.17093C3.42897 1 2.72535 1.32956 2.25037 1.89955L1.07944 3.30467C0.705039 3.75395 0.5 4.32028 0.5 4.90512V5V13.5V15H2H6.04951H9.95049H14H15.5V13.5V5V4.90513C15.5 4.32029 15.295 3.75395 14.9205 3.30466L13.7496 1.89953ZM14 5V4.90513C14 4.67119 13.918 4.44466 13.7682 4.26494L14.9205 3.30466L13.7682 4.26494L12.5973 2.85981C12.4073 2.63182 12.1258 2.5 11.8291 2.5H4.17093C3.87415 2.5 3.5927 2.63182 3.4027 2.85982L2.23178 4.26494C2.08202 4.44465 2 4.67119 2 4.90512V5C2 5.82843 2.67157 6.5 3.5 6.5C4.32843 6.5 5 5.82843 5 5H6.5C6.5 5.82843 7.17157 6.5 8 6.5C8.82843 6.5 9.5 5.82843 9.5 5H11C11 5.82843 11.6716 6.5 12.5 6.5C13.3284 6.5 14 5.82843 14 5ZM14 7.59865C13.5587 7.85391 13.0464 8 12.5 8C11.604 8 10.7997 7.60718 10.25 6.98437C9.70029 7.60718 8.89602 8 8 8C7.10398 8 6.29971 7.60718 5.75 6.98437C5.20029 7.60718 4.39602 8 3.5 8C2.95357 8 2.44126 7.85391 2 7.59865V13.5H6V12C6 10.8954 6.89543 10 8 10C9.10457 10 10 10.8954 10 12V13.5H14V7.59865ZM8.5 12V13.5H7.5V12C7.5 11.7239 7.72386 11.5 8 11.5C8.27614 11.5 8.5 11.7239 8.5 12Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Composable Commerce</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Power storefronts that convert</p></div></a></li><li><a href="/solutions/marketing-sites" data-hover-icon="false" data-feature="Marketing Sites" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill="currentColor" fill-rule="evenodd" d="M1 1v11.75A2.25 2.25 0 0 0 3.25 15H15v-1.5H3.25a.75.75 0 0 1-.75-.75V1H1Zm13.297 5.013.513-.547-1.094-1.026-.513.547-3.22 3.434-2.276-2.275a1 1 0 0 0-1.414 0L4.22 8.22l-.53.53 1.06 1.06.53-.53L7 7.56l2.287 2.287a1 1 0 0 0 1.437-.023l3.573-3.811Z" clip-rule="evenodd"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Marketing Sites</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Launch campaigns fast</p></div></a></li><li><a href="/solutions/multi-tenant-saas" data-hover-icon="false" data-feature="Multi-tenant Platforms" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1 3.75C1 2.23122 2.23122 1 3.75 1C5.26878 1 6.5 2.23122 6.5 3.75V5H9.5V3.75C9.5 2.23122 10.7312 1 12.25 1C13.7688 1 15 2.23122 15 3.75C15 5.26878 13.7688 6.5 12.25 6.5H11V9.5H12.25C13.7688 9.5 15 10.7312 15 12.25C15 13.7688 13.7688 15 12.25 15C10.7312 15 9.5 13.7688 9.5 12.25V11H6.5V12.25C6.5 13.7688 5.26878 15 3.75 15C2.23122 15 1 13.7688 1 12.25C1 10.7312 2.23122 9.5 3.75 9.5H5V6.5H3.75C2.23122 6.5 1 5.26878 1 3.75ZM11 5H12.25C12.9404 5 13.5 4.44036 13.5 3.75C13.5 3.05964 12.9404 2.5 12.25 2.5C11.5596 2.5 11 3.05964 11 3.75V5ZM9.5 6.5H6.5V9.5H9.5V6.5ZM11 12.25V11H12.25C12.9404 11 13.5 11.5596 13.5 12.25C13.5 12.9404 12.9404 13.5 12.25 13.5C11.5596 13.5 11 12.9404 11 12.25ZM5 11H3.75C3.05964 11 2.5 11.5596 2.5 12.25C2.5 12.9404 3.05964 13.5 3.75 13.5C4.44036 13.5 5 12.9404 5 12.25V11ZM5 3.75V5H3.75C3.05964 5 2.5 4.44036 2.5 3.75C2.5 3.05964 3.05964 2.5 3.75 2.5C4.44036 2.5 5 3.05964 5 3.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Multi-tenant Platforms</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Scale apps with one codebase</p></div></a></li><li><a href="/solutions/web-apps" data-hover-icon="false" data-feature="Web Apps" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5H14.5V12.5C14.5 13.0523 14.0523 13.5 13.5 13.5H2.5C1.94772 13.5 1.5 13.0523 1.5 12.5V2.5ZM0 1H1.5H14.5H16V2.5V12.5C16 13.8807 14.8807 15 13.5 15H2.5C1.11929 15 0 13.8807 0 12.5V2.5V1ZM3.75 5.5C4.16421 5.5 4.5 5.16421 4.5 4.75C4.5 4.33579 4.16421 4 3.75 4C3.33579 4 3 4.33579 3 4.75C3 5.16421 3.33579 5.5 3.75 5.5ZM7 4.75C7 5.16421 6.66421 5.5 6.25 5.5C5.83579 5.5 5.5 5.16421 5.5 4.75C5.5 4.33579 5.83579 4 6.25 4C6.66421 4 7 4.33579 7 4.75ZM8.75 5.5C9.16421 5.5 9.5 5.16421 9.5 4.75C9.5 4.33579 9.16421 4 8.75 4C8.33579 4 8 4.33579 8 4.75C8 5.16421 8.33579 5.5 8.75 5.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Web Apps</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Ship features, not infrastructure</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="heading-user-solutions">Users</h5><ul aria-describedby="heading-user-solutions" class="navigation-menu_columnReset__5wkHH"><li><a href="/solutions/platform-engineering" data-hover-icon="false" data-feature="Platform Engineers" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M12.798 1.24199L13.3283 1.77232L14.0567 1.04389L13.1398 0.574402L12.798 1.24199ZM9.95705 4.0829L9.42672 3.55257L9.95705 4.0829ZM6.5844 6.95555L7.11473 7.48588L7.46767 7.13295L7.27837 6.67111L6.5844 6.95555ZM1.49995 12.04L2.03027 12.5703L2.03028 12.5703L1.49995 12.04ZM1.49994 14.54L0.969615 15.0703H0.969615L1.49994 14.54ZM3.99995 14.54L4.53028 15.0703L3.99995 14.54ZM9.10147 9.43848L9.37633 8.74066L8.91883 8.56046L8.57114 8.90815L9.10147 9.43848ZM14.7848 3.25519L15.4568 2.92229L14.9931 1.98617L14.2544 2.72486L14.7848 3.25519ZM11.9571 6.0829L11.4267 5.55257L11.9571 6.0829ZM10.5428 6.0829L11.0732 5.55257L11.0732 5.55257L10.5428 6.0829ZM9.95705 5.49711L9.42672 6.02744L9.42672 6.02745L9.95705 5.49711ZM12.2676 0.711655L9.42672 3.55257L10.4874 4.61323L13.3283 1.77232L12.2676 0.711655ZM10.7499 1.5C11.3659 1.5 11.9452 1.64794 12.4562 1.90957L13.1398 0.574402C12.4221 0.206958 11.6091 0 10.7499 0V1.5ZM6.99994 5.25C6.99994 3.17893 8.67888 1.5 10.7499 1.5V0C7.85045 0 5.49994 2.3505 5.49994 5.25H6.99994ZM7.27837 6.67111C7.09913 6.23381 6.99994 5.75443 6.99994 5.25H5.49994C5.49994 5.95288 5.63848 6.62528 5.89043 7.23999L7.27837 6.67111ZM6.05407 6.42522L0.969615 11.5097L2.03028 12.5703L7.11473 7.48588L6.05407 6.42522ZM0.969616 11.5097C-0.0136344 12.4929 -0.013635 14.0871 0.969615 15.0703L2.03027 14.0097C1.63281 13.6122 1.63281 12.9678 2.03027 12.5703L0.969616 11.5097ZM0.969615 15.0703C1.95287 16.0536 3.54703 16.0536 4.53028 15.0703L3.46962 14.0097C3.07215 14.4071 2.42774 14.4071 2.03027 14.0097L0.969615 15.0703ZM4.53028 15.0703L9.6318 9.96881L8.57114 8.90815L3.46962 14.0097L4.53028 15.0703ZM10.7499 9C10.2637 9 9.80071 8.90782 9.37633 8.74066L8.82661 10.1363C9.4232 10.3713 10.0724 10.5 10.7499 10.5V9ZM14.4999 5.25C14.4999 7.32107 12.821 9 10.7499 9V10.5C13.6494 10.5 15.9999 8.1495 15.9999 5.25H14.4999ZM14.1127 3.5881C14.3604 4.08811 14.4999 4.65168 14.4999 5.25H15.9999C15.9999 4.4156 15.8047 3.62465 15.4568 2.92229L14.1127 3.5881ZM12.4874 6.61323L15.3151 3.78552L14.2544 2.72486L11.4267 5.55257L12.4874 6.61323ZM10.0125 6.61323C10.6959 7.29665 11.804 7.29665 12.4874 6.61323L11.4267 5.55257C11.3291 5.6502 11.1708 5.6502 11.0732 5.55257L10.0125 6.61323ZM9.42672 6.02745L10.0125 6.61323L11.0732 5.55257L10.4874 4.96678L9.42672 6.02745ZM9.42672 3.55257C8.7433 4.23599 8.7433 5.34403 9.42672 6.02744L10.4874 4.96678C10.3898 4.86915 10.3897 4.71086 10.4874 4.61323L9.42672 3.55257Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Platform Engineers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Automate away repetition</p></div></a></li><li><a href="/solutions/design-engineering" data-hover-icon="false" data-feature="Design Engineers" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M9 7L12.5 2.5" stroke="#E5484D" style="stroke:#E5484D;stroke:color(display-p3 0.8980 0.2824 0.3020);stroke-opacity:1;" stroke-width="1.5"/> <path d="M10.5 9.5L15.75 10.5" stroke="#52AEFF" style="stroke:#52AEFF;stroke:color(display-p3 0.3216 0.6824 1.0000);stroke-opacity:1;" stroke-width="1.5"/> <path d="M10 8L15.75 6" stroke="#45DEC4" style="stroke:#45DEC4;stroke:color(display-p3 0.2706 0.8706 0.7686);stroke-opacity:1;" stroke-width="1.5"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M6.14568 3.56625L7 2L7.85432 3.56625L12.1818 11.5L13 13H11.2914H2.70863H1L1.81818 11.5L3.31818 8.75H0V7.25H4.13636L6.14568 3.56625ZM3.52681 11.5L7 5.13249L10.4732 11.5H3.52681Z" fill="currentColor" /> </svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Design Engineers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Deploy for every idea</p></div></a></li></ul></li></ul></div></li><li><button id="radix-:Ripbid3am:-trigger-resources" data-state="closed" aria-expanded="false" aria-controls="radix-:Ripbid3am:-content-resources" class="navigation-menu_trigger__AmZ48" value="resources" data-active="open" data-radix-collection-item="">Resources<span class="navigation-menu_chevron__qAE7w" style="pointer-events:none"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.0607 6.74999L11.5303 7.28032L8.7071 10.1035C8.31657 10.4941 7.68341 10.4941 7.29288 10.1035L4.46966 7.28032L3.93933 6.74999L4.99999 5.68933L5.53032 6.21966L7.99999 8.68933L10.4697 6.21966L11 5.68933L12.0607 6.74999Z" fill="currentColor"/></svg></span></button><div id="radix-:Ripbid3am:-content-resources" aria-labelledby="radix-:Ripbid3am:-trigger-resources" data-orientation="horizontal" data-state="closed" aria-hidden="true" class="navigation-menu_content__VYOa5" style="pointer-events:none" dir="ltr"><ul class="navigation-menu_column__CMeKf"><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="heading-get-started">Tools</h5><ul aria-describedby="header-get-started" class="navigation-menu_columnReset__5wkHH"><li><a href="/resources" data-hover-icon="false" data-feature="Resource Center" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 0.154663L8.34601 0.334591L14.596 3.58459L15 3.79466V4.25V11.75V12.2053L14.596 12.4154L8.34601 15.6654L8 15.8453L7.65399 15.6654L1.40399 12.4154L1 12.2053V11.75V4.25V3.79466L1.40399 3.58459L7.65399 0.334591L8 0.154663ZM2.5 11.2947V5.44058L7.25 7.81559V13.7647L2.5 11.2947ZM8.75 13.7647L13.5 11.2947V5.44056L8.75 7.81556V13.7647ZM8 1.84534L12.5766 4.22519L7.99998 6.51352L3.42335 4.2252L8 1.84534Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Resource Center</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Today’s best practices</p></div></a></li><li><a data-hover-icon="false" data-feature="Marketplace" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/marketplace"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path d="M12.25 14.25V10L12.9212 10.1119C14.1403 10.315 15.25 9.37496 15.25 8.13908V7.86092C15.25 6.62504 14.1403 5.68496 12.9212 5.88813L12.25 6V1.75H8.235L8.30764 2.50382C8.41075 3.57386 7.56957 4.5 6.49457 4.5C5.42349 4.5 4.58361 3.58031 4.68058 2.51362L4.75 1.75H0.75V14.25H12.25Z" stroke="currentColor" fill="transparent" stroke-width="1.5"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Marketplace</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Extend and automate workflows</p></div></a></li><li><a data-hover-icon="false" data-feature="Templates" data-radix-collection-item="" data-zone="same" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U" href="/templates"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 2.5H1.5V5H3V6H1.5V12.5C1.5 13.0523 1.94772 13.5 2.5 13.5H5V12.5H6V13.5H13.5C14.0523 13.5 14.5 13.0523 14.5 12.5V6H14V5H14.5V2.5ZM1.5 1H0V2.5V12.5C0 13.8807 1.11929 15 2.5 15H13.5C14.8807 15 16 13.8807 16 12.5V2.5V1H14.5H1.5ZM5 9V7.5H6V9H5ZM5 11.5V10H6V11.5H5ZM6.5 5V6H8V5L6.5 5ZM4 5V6H5.5V5H4ZM9 5V6H10.5V5H9ZM11.5 5V6H13V5H11.5Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Templates</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Jumpstart app development</p></div></a></li><li><a href="/guides" data-hover-icon="false" data-feature="Guides" data-radix-collection-item="" data-zone="vercel-docs" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 1H0.75H5C6.2267 1 7.31583 1.58901 8 2.49963C8.68417 1.58901 9.7733 1 11 1H15.25H16V1.75V13V13.75H15.25H10.7426C10.1459 13.75 9.57361 13.9871 9.15165 14.409L8.53033 15.0303H7.46967L6.84835 14.409C6.42639 13.9871 5.8541 13.75 5.25736 13.75H0.75H0V13V1.75V1ZM7.25 4.75C7.25 3.50736 6.24264 2.5 5 2.5H1.5V12.25H5.25736C5.96786 12.25 6.65758 12.4516 7.25 12.8232V4.75ZM8.75 12.8232V4.75C8.75 3.50736 9.75736 2.5 11 2.5H14.5V12.25H10.7426C10.0321 12.25 9.34242 12.4516 8.75 12.8232Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Guides</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Find help quickly</p></div></a></li><li><a href="/experts" data-hover-icon="false" data-feature="Partner Finder" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.7329 1.15933L15.9807 0.0192871L14.8407 0.267122L5.22524 2.35744C3.79024 2.66939 2.66939 3.79024 2.35744 5.22523L0.267122 14.8407L0.0192871 15.9807L1.15933 15.7329L10.7748 13.6426C12.2098 13.3306 13.3306 12.2098 13.6426 10.7748L15.7329 1.15933ZM5.54388 3.8232L14.0193 1.98072L12.1768 10.4561C11.9896 11.3171 11.3171 11.9896 10.4561 12.1768L1.98072 14.0193L3.8232 5.54388C4.01037 4.68288 4.68288 4.01037 5.54388 3.8232ZM9 8C9 8.55229 8.55229 9 8 9C7.44772 9 7 8.55229 7 8C7 7.44772 7.44772 7 8 7C8.55229 7 9 7.44772 9 8ZM10.5 8C10.5 9.38072 9.38072 10.5 8 10.5C6.61929 10.5 5.5 9.38072 5.5 8C5.5 6.61929 6.61929 5.5 8 5.5C9.38072 5.5 10.5 6.61929 10.5 8Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Partner Finder</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Get help from solution partners</p></div></a></li></ul></li><li class="navigation-menu_links__VRoNf"><h5 class="text_wrapper__i87JK navigation-menu_heading__osU8W" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400" id="heading-company">Company</h5><ul aria-describedby="header-company" class="navigation-menu_columnReset__5wkHH"><li><a href="/customers" data-hover-icon="false" data-feature="Customers" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.5 8C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8C1.5 4.41015 4.41015 1.5 8 1.5C11.5899 1.5 14.5 4.41015 14.5 8ZM16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8ZM11.5249 10.8478L11.8727 10.3286L10.8342 9.6329L10.4863 10.1522C9.94904 10.9543 9.0363 11.4802 8.00098 11.4802C6.96759 11.4802 6.05634 10.9563 5.51863 10.1567L5.16986 9.63804L4.13259 10.3356L4.48137 10.8542C5.2414 11.9844 6.53398 12.7302 8.00098 12.7302C9.47073 12.7302 10.7654 11.9816 11.5249 10.8478ZM6.75 6.75C6.75 7.30228 6.30228 7.75 5.75 7.75C5.19772 7.75 4.75 7.30228 4.75 6.75C4.75 6.19772 5.19772 5.75 5.75 5.75C6.30228 5.75 6.75 6.19772 6.75 6.75ZM10.25 7.75C10.8023 7.75 11.25 7.30228 11.25 6.75C11.25 6.19772 10.8023 5.75 10.25 5.75C9.69771 5.75 9.25 6.19772 9.25 6.75C9.25 7.30228 9.69771 7.75 10.25 7.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Customers</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Trusted by the best teams</p></div></a></li><li><a href="/blog" data-hover-icon="false" data-feature="Blog" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.75 0.189331L9.28033 0.719661L15.2803 6.71966L15.8107 7.24999L15.2803 7.78032L13.7374 9.32322C13.1911 9.8696 12.3733 9.97916 11.718 9.65188L9.54863 13.5568C8.71088 15.0648 7.12143 16 5.39639 16H0.75H0V15.25V10.6036C0 8.87856 0.935237 7.28911 2.4432 6.45136L6.34811 4.28196C6.02084 3.62674 6.13039 2.80894 6.67678 2.26255L8.21967 0.719661L8.75 0.189331ZM7.3697 5.43035L10.5696 8.63029L8.2374 12.8283C7.6642 13.8601 6.57668 14.5 5.39639 14.5H2.56066L5.53033 11.5303L4.46967 10.4697L1.5 13.4393V10.6036C1.5 9.42331 2.1399 8.33579 3.17166 7.76259L7.3697 5.43035ZM12.6768 8.26256C12.5791 8.36019 12.4209 8.36019 12.3232 8.26255L12.0303 7.96966L8.03033 3.96966L7.73744 3.67677C7.63981 3.57914 7.63981 3.42085 7.73744 3.32321L8.75 2.31065L13.6893 7.24999L12.6768 8.26256Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Blog</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">The latest posts and changes</p></div></a></li><li><a href="/changelog" data-hover-icon="false" data-feature="Changelog" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M6.28497 1.5H13V12C13 12.5523 12.5523 13 12 13H6.28497L6.28497 1.5ZM5.03497 1.5H3V12C3 12.5523 3.44772 13 4 13H5.03497L5.03497 1.5ZM5.03497 14.5H4C2.61929 14.5 1.5 13.3807 1.5 12V1.5V0H3H13H14.5V1.5V12C14.5 13.3807 13.3807 14.5 12 14.5H6.28497V15V15.625H5.03497V15V14.5ZM8.505 3.375H9.13H10.13H10.755V4.625H10.13H9.13H8.505V3.375ZM9.13 6.375H8.505V7.625H9.13H10.13H10.755V6.375H10.13H9.13Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Changelog</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">See what shipped</p></div></a></li><li><a href="/press" data-hover-icon="false" data-feature="Press" data-radix-collection-item="" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_menuSubLink__jde_U"><div class="navigation-menu_icons__8b2lC"><div class="stack_stack__iZkUS stack navigation-menu_icon__xsndA" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:center;--stack-justify:center;--stack-padding:0px;--stack-gap:0px"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M6 2.5H10C10.2761 2.5 10.5 2.72386 10.5 3V4H5.5V3C5.5 2.72386 5.72386 2.5 6 2.5ZM4 4V3C4 1.89543 4.89543 1 6 1H10C11.1046 1 12 1.89543 12 3V4H14.5H16V5.5V13.5C16 14.8807 14.8807 16 13.5 16H2.5C1.11929 16 0 14.8807 0 13.5V5.5V4H1.5H4ZM12 5.5H10.5H5.5H4H1.5V9.25H7.25V8.5H8.75V9.25L14.5 9.25V5.5H12ZM8.75 10.75L14.5 10.75V13.5C14.5 14.0523 14.0523 14.5 13.5 14.5H2.5C1.94772 14.5 1.5 14.0523 1.5 13.5V10.75H7.25V11.5H8.75V10.75Z" fill="currentColor"/></svg></div></div><div class="navigation-menu_menuSubLinkContent___WWcd"><div class="navigation-menu_menuItemHeading__r6JQU">Press</div><p class="text_wrapper__i87JK navigation-menu_menuItemText__l6KEM" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.75rem;--text-line-height:1rem;--text-letter-spacing:initial;--text-weight:400">Read the latest news</p></div></a></li></ul></li></ul></div></li><li><a href="/enterprise" data-active="closed" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_link__vSiGj">Enterprise</a></li><li><a href="/docs" data-active="closed" data-zone="vercel-docs" class="link_link__hbWKh navigation-menu_link__vSiGj">Docs</a></li><li><a href="/pricing" data-active="closed" data-zone="vercel-marketing" class="link_link__hbWKh navigation-menu_link__vSiGj">Pricing</a></li></ul></div><div class="navigation-menu_viewportPosition__U0Mm6" style="transform:translateX(var(--left-offset))"></div></nav></div></div><div class="header_nav_third__ZqUtx"><div class="header_right__Zq0mQ header_hidden__AkePn"><span class="fade-in_fade-in__H0uu5" style="box-sizing:border-box"><div class="logged-out-profile_wrapper__n5dBO"><div class="logged-out-profile_links__fi18g"><a data-testid="header/login" data-track-intent="Login" data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/login">Log In</a><a role="link" tabindex="0" href="/contact" type="submit" data-testid="header/contact" data-track-intent="Contact Sales" data-zone="vercel-marketing" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Contact</span></a></div><a role="link" tabindex="0" href="/signup" type="submit" data-testid="header/sign-up" data-track-intent="Get Started" style="--content-width:60px;--geist-icon-size:16px" data-zone="same" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_small__iQMBm button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1"><span class="button_content__1aE1_"><div class="logged-out-profile_morphingButtonContent__W2wju">Sign Up</div><div class="logged-out-profile_morphingButtonContentWidth__LAe9w"></div></span></a></div></span></div></div></header></div><div id="geist-skip-nav" tabindex="-1"></div><div class="individual_wrapper__D1PhW"><div class="individual_container__F3Dlm"><div class="individual_desktop-layout__sjxKR"><div class="individual_desktop-layout-left__bplBF"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:0px"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/templates"><small>← Back to Templates</small></a></div><div class="stack_stack__iZkUS stack stack_padding__ox8JS" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:32px 0px 0px;--stack-gap:16px"><a href="https://github.com/vercel/examples/tree/main/solutions/blog" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh hero_repo__lD7N_"><img alt="Avatar of vercel" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="hero_github-avatar__p3q9l" style="color:transparent" srcSet="/_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=32&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1x, /_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=48&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2x" src="/_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=48&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><span class="hero_tag-value___FAun">vercel/examples</span></a><h1 class="hero_title__WP7B5">Next.js Portfolio with Blog</h1><p class="hero_description__hoXmh">Easily create a portfolio with Next.js and Markdown.</p><div class="hero_buttons__DD8jQ"><div data-version="v1" class="jsx-1346519554 geist-list"><div class="list_geistListItem__CkgRr"><div data-version="v1" style="--flex:1;--justify-content:flex-start;--align-items:stretch" class="jsx-4164124281 geist-container"><a role="link" tabindex="0" href="/new/clone?demo-description=Easily%20create%20a%20portfolio%20with%20Next.js%20and%20Markdown.&amp;demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;demo-title=Next.js%20Portfolio%20with%20Blog&amp;demo-url=https%3A%2F%2Fportfolio-blog-starter.vercel.app&amp;from=templates&amp;project-name=Next.js%20Portfolio%20with%20Blog&amp;repository-name=nextjs-portfolio&amp;repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fexamples%2Ftree%2Fmain%2Fsolutions%2Fblog&amp;skippable-integrations=1" type="submit" data-track-intent="Get Started" data-zone="same" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Deploy</span></a></div></div><div class="list_geistListItem__CkgRr"><div data-version="v1" style="--flex:1;--justify-content:flex-start;--align-items:stretch" class="jsx-4164124281 geist-container"><a role="link" tabindex="0" href="https://portfolio-blog-starter.vercel.app" target="_blank" type="submit" data-track-intent="Learn More" data-zone="null" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">View Demo</span></a></div></div></div></div><div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">Framework</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/next.js">Next.js</a></div></div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">Use Case</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/portfolio">Portfolio</a><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/blog">Blog</a></div></div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">CSS</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/tailwind">Tailwind</a></div></div></div></div></div><div class="individual_desktop-layout-right__rx_zy"><div class="individual_image-wrapper__AnRC8 individual_image-wrapper-desktop__h2UAx individual_fdiqcj__TX5y2"><img data-version="v1" alt="Portfolio Starter Kit" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="100vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/></div><div class="content_mcptgg__uFwsI" style="overflow-wrap:break-word"><h2 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600">Portfolio Blog Starter</h2><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">This is a porfolio site template complete with a blog. Includes:</p><ul class="list_ul__hxN2r"><li class="mdx-components_mdx-list-item__Yu_kr">MDX and Markdown support</li><li class="mdx-components_mdx-list-item__Yu_kr">Optimized for SEO (sitemap, robots, JSON-LD schema)</li><li class="mdx-components_mdx-list-item__Yu_kr">RSS Feed</li><li class="mdx-components_mdx-list-item__Yu_kr">Dynamic OG images</li><li class="mdx-components_mdx-list-item__Yu_kr">Syntax highlighting</li><li class="mdx-components_mdx-list-item__Yu_kr">Tailwind v4</li><li class="mdx-components_mdx-list-item__Yu_kr">Vercel Speed Insights / Web Analytics</li><li class="mdx-components_mdx-list-item__Yu_kr">Geist font</li></ul><h3 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600">Demo</h3><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400"><a href="https://portfolio-blog-starter.vercel.app" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">https://portfolio-blog-starter.vercel.app</a></p><h3 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600">How to Use</h3><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">You can choose from one of the following two methods to use this repository:</p><h4 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.25rem;--text-line-height:1.5rem;--text-letter-spacing:-0.020625rem;--text-weight:600">One-Click Deploy</h4><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Deploy the example using <a href="https://vercel.com?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=vercel-examples" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Vercel</a>:</p><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400"><a href="https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/solutions/blog&amp;project-name=blog&amp;repository-name=blog" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9"></a></p><h4 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.25rem;--text-line-height:1.5rem;--text-letter-spacing:-0.020625rem;--text-weight:600">Clone and Deploy</h4><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Execute <a href="https://github.com/vercel/next.js/tree/canary/packages/create-next-app" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9"><code class="inline_code__cgX1y" data-geist-inline-code="" data-version="v1">create-next-app</code></a> with <a href="https://pnpm.io/installation" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">pnpm</a> to bootstrap the example:</p><pre><div class="code-block_wrapper__t6FCO" data-geist-code-block=""><button aria-label="Copy code" class="code-block_copyButton__uo5Yu code-block_copyFloatingButton__PsMvB" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"/></svg><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"/></svg></button><pre class="prism-code language-js code-block_pre___OLfy"><code class="code-block_code__isn_V"><div class="line"><div class="token-line"><span class="token plain">pnpm create next</span><span class="token operator">-</span><span class="token plain">app </span><span class="token operator">--</span><span class="token plain">example https</span><span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span><span class="token plain">github</span><span class="token punctuation">.</span><span class="token property-access">com</span><span class="token operator">/</span><span class="token plain">vercel</span><span class="token operator">/</span><span class="token plain">examples</span><span class="token operator">/</span><span class="token plain">tree</span><span class="token operator">/</span><span class="token plain">main</span><span class="token operator">/</span><span class="token plain">solutions</span><span class="token operator">/</span><span class="token plain">blog blog</span></div></div></code></pre></div></pre><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Then, run Next.js in development mode:</p><pre><div class="code-block_wrapper__t6FCO" data-geist-code-block=""><button aria-label="Copy code" class="code-block_copyButton__uo5Yu code-block_copyFloatingButton__PsMvB" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"/></svg><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"/></svg></button><pre class="prism-code language-js code-block_pre___OLfy"><code class="code-block_code__isn_V"><div class="line"><div class="token-line"><span class="token plain">pnpm dev</span></div></div></code></pre></div></pre><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Deploy it to the cloud with <a href="https://vercel.com/templates" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Vercel</a> (<a href="https://nextjs.org/docs/app/building-your-application/deploying" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Documentation</a>).</p></div></div></div><div class="individual_mobile-layout__aEpoa"><div class="stack_stack__iZkUS stack" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:0px;--stack-gap:0px"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/templates"><small>← Back to Templates</small></a></div><div class="individual_image-wrapper__AnRC8 individual_njdbgz__X_MsM"><img data-version="v1" alt="Portfolio Starter Kit" width="1200" height="600" decoding="async" data-nimg="1" class="image_intrinsic__ulrJk" style="color:transparent;object-fit:contain" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1x, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2x" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/></div><div class="stack_stack__iZkUS stack stack_padding__ox8JS" data-version="v1" style="--stack-flex:initial;--stack-direction:column;--stack-align:stretch;--stack-justify:flex-start;--stack-padding:32px 0px 0px;--stack-gap:16px"><a href="https://github.com/vercel/examples/tree/main/solutions/blog" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh hero_repo__lD7N_"><img alt="Avatar of vercel" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" class="hero_github-avatar__p3q9l" style="color:transparent" srcSet="/_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=32&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1x, /_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=48&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2x" src="/_next/image?url=https%3A%2F%2Fgithub.com%2Fvercel.png&amp;w=48&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><span class="hero_tag-value___FAun">vercel/examples</span></a><h1 class="hero_title__WP7B5">Next.js Portfolio with Blog</h1><p class="hero_description__hoXmh">Easily create a portfolio with Next.js and Markdown.</p><div class="hero_buttons__DD8jQ"><div data-version="v1" class="jsx-1346519554 geist-list"><div class="list_geistListItem__CkgRr"><div data-version="v1" style="--flex:1;--justify-content:flex-start;--align-items:stretch" class="jsx-4164124281 geist-container"><a role="link" tabindex="0" href="/new/clone?demo-description=Easily%20create%20a%20portfolio%20with%20Next.js%20and%20Markdown.&amp;demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2aC4eHLrOKmT4fnLfoNGK2%2Fcf62be4001c4886830c7faa564d376a3%2FCleanShot_2024-04-07_at_22.02.03_2x.png&amp;demo-title=Next.js%20Portfolio%20with%20Blog&amp;demo-url=https%3A%2F%2Fportfolio-blog-starter.vercel.app&amp;from=templates&amp;project-name=Next.js%20Portfolio%20with%20Blog&amp;repository-name=nextjs-portfolio&amp;repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fexamples%2Ftree%2Fmain%2Fsolutions%2Fblog&amp;skippable-integrations=1" type="submit" data-track-intent="Get Started" data-zone="same" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Deploy</span></a></div></div><div class="list_geistListItem__CkgRr"><div data-version="v1" style="--flex:1;--justify-content:flex-start;--align-items:stretch" class="jsx-4164124281 geist-container"><a role="link" tabindex="0" href="https://portfolio-blog-starter.vercel.app" target="_blank" type="submit" data-track-intent="Learn More" data-zone="null" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_secondary__kMMNc button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">View Demo</span></a></div></div></div></div><div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">Framework</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/next.js">Next.js</a></div></div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">Use Case</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/portfolio">Portfolio</a><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/blog">Blog</a></div></div><div class="hero_tag__GW2fk"><span class="hero_tag-key___z4Kx">CSS</span><div class="hero_tag-value-container__6zJ8V"><a data-zone="same" class="link_link__hbWKh hero_tag-value___FAun" href="/templates/tailwind">Tailwind</a></div></div></div></div><div class="content_mcptgg__uFwsI" style="overflow-wrap:break-word"><h2 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:2rem;--text-line-height:2.5rem;--text-letter-spacing:-0.049375rem;--text-weight:600">Portfolio Blog Starter</h2><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">This is a porfolio site template complete with a blog. Includes:</p><ul class="list_ul__hxN2r"><li class="mdx-components_mdx-list-item__Yu_kr">MDX and Markdown support</li><li class="mdx-components_mdx-list-item__Yu_kr">Optimized for SEO (sitemap, robots, JSON-LD schema)</li><li class="mdx-components_mdx-list-item__Yu_kr">RSS Feed</li><li class="mdx-components_mdx-list-item__Yu_kr">Dynamic OG images</li><li class="mdx-components_mdx-list-item__Yu_kr">Syntax highlighting</li><li class="mdx-components_mdx-list-item__Yu_kr">Tailwind v4</li><li class="mdx-components_mdx-list-item__Yu_kr">Vercel Speed Insights / Web Analytics</li><li class="mdx-components_mdx-list-item__Yu_kr">Geist font</li></ul><h3 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600">Demo</h3><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400"><a href="https://portfolio-blog-starter.vercel.app" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">https://portfolio-blog-starter.vercel.app</a></p><h3 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.5rem;--text-line-height:2rem;--text-letter-spacing:-0.029375rem;--text-weight:600">How to Use</h3><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">You can choose from one of the following two methods to use this repository:</p><h4 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.25rem;--text-line-height:1.5rem;--text-letter-spacing:-0.020625rem;--text-weight:600">One-Click Deploy</h4><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Deploy the example using <a href="https://vercel.com?utm_source=github&amp;utm_medium=readme&amp;utm_campaign=vercel-examples" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Vercel</a>:</p><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400"><a href="https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/solutions/blog&amp;project-name=blog&amp;repository-name=blog" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9"></a></p><h4 class="text_wrapper__i87JK mdx-components_mdx-heading__HweOA" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:1.25rem;--text-line-height:1.5rem;--text-letter-spacing:-0.020625rem;--text-weight:600">Clone and Deploy</h4><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Execute <a href="https://github.com/vercel/next.js/tree/canary/packages/create-next-app" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9"><code class="inline_code__cgX1y" data-geist-inline-code="" data-version="v1">create-next-app</code></a> with <a href="https://pnpm.io/installation" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">pnpm</a> to bootstrap the example:</p><pre><div class="code-block_wrapper__t6FCO" data-geist-code-block=""><button aria-label="Copy code" class="code-block_copyButton__uo5Yu code-block_copyFloatingButton__PsMvB" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"/></svg><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"/></svg></button><pre class="prism-code language-js code-block_pre___OLfy"><code class="code-block_code__isn_V"><div class="line"><div class="token-line"><span class="token plain">pnpm create next</span><span class="token operator">-</span><span class="token plain">app </span><span class="token operator">--</span><span class="token plain">example https</span><span class="token operator">:</span><span class="token operator">/</span><span class="token operator">/</span><span class="token plain">github</span><span class="token punctuation">.</span><span class="token property-access">com</span><span class="token operator">/</span><span class="token plain">vercel</span><span class="token operator">/</span><span class="token plain">examples</span><span class="token operator">/</span><span class="token plain">tree</span><span class="token operator">/</span><span class="token plain">main</span><span class="token operator">/</span><span class="token plain">solutions</span><span class="token operator">/</span><span class="token plain">blog blog</span></div></div></code></pre></div></pre><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Then, run Next.js in development mode:</p><pre><div class="code-block_wrapper__t6FCO" data-geist-code-block=""><button aria-label="Copy code" class="code-block_copyButton__uo5Yu code-block_copyFloatingButton__PsMvB" type="button"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 0.5C1.7835 0.5 1 1.2835 1 2.25V9.75C1 10.7165 1.7835 11.5 2.75 11.5H3.75H4.5V10H3.75H2.75C2.61193 10 2.5 9.88807 2.5 9.75V2.25C2.5 2.11193 2.61193 2 2.75 2H8.25C8.38807 2 8.5 2.11193 8.5 2.25V3H10V2.25C10 1.2835 9.2165 0.5 8.25 0.5H2.75ZM7.75 4.5C6.7835 4.5 6 5.2835 6 6.25V13.75C6 14.7165 6.7835 15.5 7.75 15.5H13.25C14.2165 15.5 15 14.7165 15 13.75V6.25C15 5.2835 14.2165 4.5 13.25 4.5H7.75ZM7.5 6.25C7.5 6.11193 7.61193 6 7.75 6H13.25C13.3881 6 13.5 6.11193 13.5 6.25V13.75C13.5 13.8881 13.3881 14 13.25 14H7.75C7.61193 14 7.5 13.8881 7.5 13.75V6.25Z" fill="currentColor"/></svg><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16" aria-hidden="true"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5607 3.99999L15.0303 4.53032L6.23744 13.3232C5.55403 14.0066 4.44599 14.0066 3.76257 13.3232L4.2929 12.7929L3.76257 13.3232L0.969676 10.5303L0.439346 9.99999L1.50001 8.93933L2.03034 9.46966L4.82323 12.2626C4.92086 12.3602 5.07915 12.3602 5.17678 12.2626L13.9697 3.46966L14.5 2.93933L15.5607 3.99999Z" fill="currentColor"/></svg></button><pre class="prism-code language-js code-block_pre___OLfy"><code class="code-block_code__isn_V"><div class="line"><div class="token-line"><span class="token plain">pnpm dev</span></div></div></code></pre></div></pre><p class="text_wrapper__i87JK mdx-components_mdx-block__9cz5F" data-version="v1" style="--text-color:var(--ds-gray-900);--text-size:1rem;--text-line-height:1.5rem;--text-letter-spacing:initial;--text-weight:400">Deploy it to the cloud with <a href="https://vercel.com/templates" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Vercel</a> (<a href="https://nextjs.org/docs/app/building-your-application/deploying" rel="nofollow" target="_blank" data-zone="null" class="link_link__hbWKh link_highlight__kJZF9">Documentation</a>).</p></div></div></div><div class="individual_related-templates__KZ11a individual_xrfajk__oEFbu"><div class="individual_related-templates-title__HSTbj"><h2 class="individual_heading__4A2AX">Related Templates</h2></div><div class="individual_cards__XFD40"><div class="card_card__wouwp" data-track-intent="Get Started"><a aria-label="Navigational link back to the filter page for Next.js" data-zone="same" class="link_link__hbWKh card_framework-badge__q1zvX" href="/templates/next.js"><svg fill="none" height="20" viewBox="0 0 180 180" width="20" xmlns="http://www.w3.org/2000/svg"><g mask="url(#mask0_292_290)"><circle cx="90" cy="90" fill="black" r="87" stroke="var( --next-icon-border)" stroke-width="6"></circle><path d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z" fill="url(#paint0_linear_292_290)"></path><rect fill="url(#paint1_linear_292_290)" height="72" width="12" x="115" y="54"></rect></g><defs><linearGradient gradientUnits="userSpaceOnUse" id="paint0_linear_292_290" x1="109" x2="144.5" y1="116.5" y2="160.5"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="paint1_linear_292_290" x1="121" x2="120.799" y1="54" y2="106.875"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient></defs></svg></a><a data-zone="same" class="link_link__hbWKh card_card-link__cvFaq" href="/templates/next.js/blog-starter-kit"><div class="card_image-wrapper__gHX5j" style="height:180px"><img data-version="v1" alt="Blog Starter Kit" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="25vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=256&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 256w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=384&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 384w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F9HIawEMUBUpmhHTcnFscc%2F4d16c261512ad87d6cc5fefb32510381%2FCleanShot_2022-03-09_at_19.30.51.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><div class="card_image-overlay__uLc6t"></div></div><div class="card_card-content__XAU3q"><div><h3 class="card_title__Tsmtb">Blog Starter Kit</h3><div class="card_description__iGTlG">A statically generated blog example using Next.js and Markdown.</div></div><div class="card_bottom__yP17T"><p class="card_author__ozANP">by <!-- -->▲ Vercel</p><button aria-label="View demo" class="card_demo-link__kBqwW" role="link" type="button"><svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color:currentColor;width:20px;height:20px"><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><path d="M15 3h6v6"/><path d="M10 14L21 3"/></svg></button></div></div></a></div><div class="card_card__wouwp" data-track-intent="Get Started"><a aria-label="Navigational link back to the filter page for Next.js" data-zone="same" class="link_link__hbWKh card_framework-badge__q1zvX" href="/templates/next.js"><svg fill="none" height="20" viewBox="0 0 180 180" width="20" xmlns="http://www.w3.org/2000/svg"><g mask="url(#mask0_292_290)"><circle cx="90" cy="90" fill="black" r="87" stroke="var( --next-icon-border)" stroke-width="6"></circle><path d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z" fill="url(#paint0_linear_292_290)"></path><rect fill="url(#paint1_linear_292_290)" height="72" width="12" x="115" y="54"></rect></g><defs><linearGradient gradientUnits="userSpaceOnUse" id="paint0_linear_292_290" x1="109" x2="144.5" y1="116.5" y2="160.5"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="paint1_linear_292_290" x1="121" x2="120.799" y1="54" y2="106.875"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient></defs></svg></a><a data-zone="same" class="link_link__hbWKh card_card-link__cvFaq" href="/templates/next.js/documentation-starter-kit"><div class="card_image-wrapper__gHX5j" style="height:180px"><img data-version="v1" alt="Nextra: Docs Starter Kit" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="25vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=256&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 256w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=384&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 384w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F5RZetTd7rd1mQtoZt2fajA%2F747eabb89b6378ecfc0ef433f5e47a01%2FCleanShot_2022-12-02_at_12.07.44.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><div class="card_image-overlay__uLc6t"></div></div><div class="card_card-content__XAU3q"><div><h3 class="card_title__Tsmtb">Nextra: Docs Starter Kit</h3><div class="card_description__iGTlG">Simple, powerful and flexible markdown-powered docs site. Built with Next.js.</div></div><div class="card_bottom__yP17T"><p class="card_author__ozANP">by <!-- -->▲ Vercel</p><button aria-label="View demo" class="card_demo-link__kBqwW" role="link" type="button"><svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color:currentColor;width:20px;height:20px"><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><path d="M15 3h6v6"/><path d="M10 14L21 3"/></svg></button></div></div></a></div><div class="card_card__wouwp" data-track-intent="Get Started"><a aria-label="Navigational link back to the filter page for Next.js" data-zone="same" class="link_link__hbWKh card_framework-badge__q1zvX" href="/templates/next.js"><svg fill="none" height="20" viewBox="0 0 180 180" width="20" xmlns="http://www.w3.org/2000/svg"><g mask="url(#mask0_292_290)"><circle cx="90" cy="90" fill="black" r="87" stroke="var( --next-icon-border)" stroke-width="6"></circle><path d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z" fill="url(#paint0_linear_292_290)"></path><rect fill="url(#paint1_linear_292_290)" height="72" width="12" x="115" y="54"></rect></g><defs><linearGradient gradientUnits="userSpaceOnUse" id="paint0_linear_292_290" x1="109" x2="144.5" y1="116.5" y2="160.5"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="paint1_linear_292_290" x1="121" x2="120.799" y1="54" y2="106.875"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient></defs></svg></a><a data-zone="same" class="link_link__hbWKh card_card-link__cvFaq" href="/templates/next.js/blog-with-comments"><div class="card_image-wrapper__gHX5j" style="height:180px"><img data-version="v1" alt="Blog (with comments)" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="25vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=256&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 256w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=384&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 384w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2doqzpUs8MxLW7oOEgxFyo%2F953a4291f415613e97d2c2cbd63d5464%2FAuth0-tempate.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><div class="card_image-overlay__uLc6t"></div></div><div class="card_card-content__XAU3q"><div><h3 class="card_title__Tsmtb">Blog (with comments)</h3><div class="card_description__iGTlG">Next.js blog application with Auth0 and Upstash</div></div><div class="card_bottom__yP17T"><p class="card_author__ozANP">by <!-- -->Auth0</p><button aria-label="View demo" class="card_demo-link__kBqwW" role="link" type="button"><svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color:currentColor;width:20px;height:20px"><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><path d="M15 3h6v6"/><path d="M10 14L21 3"/></svg></button></div></div></a></div><div class="card_card__wouwp" data-track-intent="Get Started"><a aria-label="Navigational link back to the filter page for Next.js" data-zone="same" class="link_link__hbWKh card_framework-badge__q1zvX" href="/templates/next.js"><svg fill="none" height="20" viewBox="0 0 180 180" width="20" xmlns="http://www.w3.org/2000/svg"><g mask="url(#mask0_292_290)"><circle cx="90" cy="90" fill="black" r="87" stroke="var( --next-icon-border)" stroke-width="6"></circle><path d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z" fill="url(#paint0_linear_292_290)"></path><rect fill="url(#paint1_linear_292_290)" height="72" width="12" x="115" y="54"></rect></g><defs><linearGradient gradientUnits="userSpaceOnUse" id="paint0_linear_292_290" x1="109" x2="144.5" y1="116.5" y2="160.5"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient><linearGradient gradientUnits="userSpaceOnUse" id="paint1_linear_292_290" x1="121" x2="120.799" y1="54" y2="106.875"><stop stop-color="white"></stop><stop offset="1" stop-color="white" stop-opacity="0"></stop></linearGradient></defs></svg></a><a data-zone="same" class="link_link__hbWKh card_card-link__cvFaq" href="/templates/next.js/nextjs-boilerplate"><div class="card_image-wrapper__gHX5j" style="height:180px"><img data-version="v1" alt="Next.js Boilerplate" loading="lazy" decoding="async" data-nimg="fill" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="25vw" srcSet="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=256&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 256w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=384&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 384w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=640&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 640w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=750&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 750w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=828&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 828w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=1080&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1080w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=1200&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1200w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=1920&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 1920w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=2048&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 2048w, /_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC 3840w" src="/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F1aHobcZ8H6WY48u5CMXlOe%2F0f0efe6bd469985b692555fbcad1cc01%2Fnextjs-template.png&amp;w=3840&amp;q=75&amp;dpl=dpl_6nZFm7fcLMEUwXwfRxHuNQZT6oLC"/><div class="card_image-overlay__uLc6t"></div></div><div class="card_card-content__XAU3q"><div><h3 class="card_title__Tsmtb">Next.js Boilerplate</h3><div class="card_description__iGTlG">Get started with Next.js and React in seconds.</div></div><div class="card_bottom__yP17T"><p class="card_author__ozANP">by <!-- -->▲ Vercel</p><button aria-label="View demo" class="card_demo-link__kBqwW" role="link" type="button"><svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color:currentColor;width:20px;height:20px"><path d="M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"/><path d="M15 3h6v6"/><path d="M10 14L21 3"/></svg></button></div></div></a></div></div></div><div class="cta_wrapper__ZxrYV"><div class="cta_cta__Tf7UH"><div class="cta_message__1IGa4"><h2 class="cta_title__T_RRs">Unleash New Possibilities</h2><p class="cta_subtitle__IPFVy">Deploy your app on Vercel and unlock its full potential</p></div><span aria-hidden="true" class="geist-spacer" data-version="v1" style="margin-left:71px"></span><button type="submit" active="[object Object]" hover="[object Object]" normal="[object Object]" class="button_base__BjwbK reset_reset__KRyvc button_button__81573 reset_reset__KRyvc button_large__fuY6E button_invert__YNhnn" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="button_content__1aE1_">Try Vercel Free</span></button></div><span aria-hidden="true" class="geist-spacer" data-version="v1" style="margin-top:95px"></span></div></div></div><footer class="geist-footer_footer__pIcfx footer_marketingFooterContainer__cJMpP" data-version="v1" data-variant="elevated"><nav aria-label="Vercel Directory"><div class="footer_marketingFooter__l2bjL"><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Products</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="/ai" style="font-feature-settings:&#x27;ss05&#x27;" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">AI</a></li><li class="geist-footer_item__Hte4A"><a href="/enterprise" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Enterprise</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/solutions/nextjs">Next.js</a></li><li class="geist-footer_item__Hte4A"><a href="/products/observability" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Observability</a></li><li class="geist-footer_item__Hte4A"><a href="/products/previews" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Previews</a></li><li class="geist-footer_item__Hte4A"><a href="/products/rendering" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Rendering</a></li><li class="geist-footer_item__Hte4A"><a href="/security" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Security</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/solutions/turborepo">Turbo</a></li><li class="geist-footer_item__Hte4A"><a href="https://v0.dev/" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_external__0a5cc link_secondary__F1rqx">v0<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z" fill="currentColor"/></svg></a></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Resources</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="https://vercel.community/" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_external__0a5cc link_secondary__F1rqx">Community<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 9.75V11.25C11.5 11.3881 11.3881 11.5 11.25 11.5H4.75C4.61193 11.5 4.5 11.3881 4.5 11.25L4.5 4.75C4.5 4.61193 4.61193 4.5 4.75 4.5H6.25H7V3H6.25H4.75C3.7835 3 3 3.7835 3 4.75V11.25C3 12.2165 3.7835 13 4.75 13H11.25C12.2165 13 13 12.2165 13 11.25V9.75V9H11.5V9.75ZM8.5 3H9.25H12.2495C12.6637 3 12.9995 3.33579 12.9995 3.75V6.75V7.5H11.4995V6.75V5.56066L8.53033 8.52978L8 9.06011L6.93934 7.99945L7.46967 7.46912L10.4388 4.5H9.25H8.5V3Z" fill="currentColor"/></svg></a></li><li class="geist-footer_item__Hte4A"><a href="/docs" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">Docs</a></li><li class="geist-footer_item__Hte4A"><a href="/experts" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Experts</a></li><li class="geist-footer_item__Hte4A"><a href="/guides" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">Guides</a></li><li class="geist-footer_item__Hte4A"><a href="/help" data-zone="vercel-docs" class="link_link__hbWKh link_secondary__F1rqx">Help</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/integrations">Integrations</a></li><li class="geist-footer_item__Hte4A"><a href="/pricing" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Pricing</a></li><li class="geist-footer_item__Hte4A"><a href="/resources" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Resources</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/templates">Templates</a></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Company</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="/about" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">About</a></li><li class="geist-footer_item__Hte4A"><a href="/blog" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Blog</a></li><li class="geist-footer_item__Hte4A"><a href="/careers" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Careers</a></li><li class="geist-footer_item__Hte4A"><a href="/changelog" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Changelog</a></li><li class="geist-footer_item__Hte4A"><a href="/contact" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Contact Us</a></li><li class="geist-footer_item__Hte4A"><a href="/customers" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Customers</a></li><li class="geist-footer_item__Hte4A"><a data-zone="same" class="link_link__hbWKh link_secondary__F1rqx" href="/partners">Partners</a></li><li class="geist-footer_item__Hte4A"><a href="/legal/privacy-policy" data-zone="vercel-marketing" class="link_link__hbWKh link_secondary__F1rqx">Privacy Policy</a></li><li class="footer_legalButton__eSfwa"><button type="submit" aria-haspopup="true" aria-expanded="false" aria-controls="menu-:Raddid3am:" aria-label="Legal" data-testid="footer/legal-button" data-geist-menu-button="" data-is-open="false" id="menu-button-:Raddid3amH1:" style="--geist-icon-size:16px" class="button_base__BjwbK reset_reset__KRyvc footer_legalMenuButton__7D9MK" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1"><span class="button_content__1aE1_ button_flex__fCY56 button_center__nyfP_"><span class="footer_link__8OH36 footer_secondary__2yfhO" style="display:flex;align-items:center;gap:2px;width:100%">Legal<svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:16px;height:16px;color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.0607 6.74999L11.5303 7.28032L8.7071 10.1035C8.31657 10.4941 7.68341 10.4941 7.29288 10.1035L4.46966 7.28032L3.93933 6.74999L4.99999 5.68933L5.53032 6.21966L7.99999 8.68933L10.4697 6.21966L11 5.68933L12.0607 6.74999Z" fill="currentColor"/></svg></span></span></button></li></ul></div><div class="geist-footer_group__kmfVW"><h2 class="geist-footer_header__7gH2r">Social</h2><ul class="geist-footer_list__xPmDi"><li class="geist-footer_item__Hte4A"><a href="https://github.com/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 1.46252C4.40875 1.46252 1.5 4.37029 1.5 7.96032C1.5 10.8356 3.36062 13.2642 5.94438 14.1251C6.26937 14.182 6.39125 13.987 6.39125 13.8165C6.39125 13.6621 6.38313 13.1504 6.38313 12.6063C4.75 12.9068 4.3275 12.2083 4.1975 11.8428C4.12437 11.6559 3.8075 11.0793 3.53125 10.9249C3.30375 10.8031 2.97875 10.5026 3.52312 10.4945C4.035 10.4863 4.40062 10.9656 4.5225 11.1605C5.1075 12.1433 6.04188 11.8671 6.41563 11.6966C6.4725 11.2742 6.64313 10.9899 6.83 10.8275C5.38375 10.665 3.8725 10.1046 3.8725 7.61919C3.8725 6.91255 4.12438 6.32775 4.53875 5.87291C4.47375 5.71046 4.24625 5.04444 4.60375 4.15099C4.60375 4.15099 5.14812 3.98042 6.39125 4.81701C6.91125 4.67081 7.46375 4.59771 8.01625 4.59771C8.56875 4.59771 9.12125 4.67081 9.64125 4.81701C10.8844 3.9723 11.4288 4.15099 11.4288 4.15099C11.7863 5.04444 11.5588 5.71046 11.4938 5.87291C11.9081 6.32775 12.16 6.90443 12.16 7.61919C12.16 10.1127 10.6406 10.665 9.19438 10.8275C9.43 11.0305 9.63313 11.4204 9.63313 12.0296C9.63313 12.8987 9.625 13.5972 9.625 13.8165C9.625 13.987 9.74687 14.1901 10.0719 14.1251C11.3622 13.6896 12.4835 12.8606 13.2779 11.7547C14.0722 10.6488 14.4997 9.32178 14.5 7.96032C14.5 4.37029 11.5913 1.46252 8 1.46252Z" fill="currentColor"/></svg>GitHub</a></li><li class="geist-footer_item__Hte4A"><a href="https://linkedin.com/company/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 2C2.67157 2 2 2.67157 2 3.5V12.5C2 13.3284 2.67157 14 3.5 14H12.5C13.3284 14 14 13.3284 14 12.5V3.5C14 2.67157 13.3284 2 12.5 2H3.5ZM4.74556 5.5C5.21057 5.5 5.5 5.16665 5.5 4.75006C5.49133 4.3241 5.21057 4 4.75438 4C4.29824 4 4 4.3241 4 4.75006C4 5.16665 4.28937 5.5 4.73687 5.5H4.74556ZM5.5 6.5V12H4V6.5H5.5ZM7 12H8.5V8.89479C8.5 8.89479 8.60415 7.78962 9.55208 7.78962C10.5 7.78962 10.5 9.02275 10.5 9.02275V12H12V8.8133C12 7.13837 11.25 6.5025 10.125 6.5025C9 6.5025 8.5 7.27778 8.5 7.27778V6.5025H7.00005C7.02383 7.01418 7 12 7 12Z" fill="currentColor"/></svg>LinkedIn</a></li><li class="geist-footer_item__Hte4A"><a href="https://x.com/vercel" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.60022 2H5.80022L8.78759 6.16842L12.4002 2H14.0002L9.5118 7.17895L14.4002 14H10.2002L7.21285 9.83158L3.60022 14H2.00022L6.48864 8.82105L1.60022 2ZM10.8166 12.8L3.93657 3.2H5.18387L12.0639 12.8H10.8166Z" fill="currentColor"/></svg> Twitter</a></li><li class="geist-footer_item__Hte4A"><a href="https://youtube.com/@VercelHQ" rel="noopener" target="_blank" data-zone="null" class="link_link__hbWKh link_secondary__F1rqx footer_socialIcon__jQjkd"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.4695 3.39273C14.0722 3.55407 14.5459 4.02773 14.7073 4.63046C14.9988 5.72183 15 8.00023 15 8.00023C15 8.00023 15 10.2786 14.7073 11.37C14.5459 11.9728 14.0722 12.4464 13.4695 12.6077C12.3782 12.9005 7.99998 12.9005 7.99998 12.9005C7.99998 12.9005 3.62183 12.9005 2.53045 12.6077C1.92773 12.4464 1.45407 11.9728 1.29272 11.37C1 10.2786 1 8.00023 1 8.00023C1 8.00023 1 5.72183 1.29272 4.63046C1.45407 4.02773 1.92773 3.55407 2.53045 3.39273C3.62183 3.10001 7.99998 3.10001 7.99998 3.10001C7.99998 3.10001 12.3782 3.10001 13.4695 3.39273ZM10.2362 8.00046L6.59906 10.1002V5.90068L10.2362 8.00046Z" fill="currentColor"/></svg>YouTube</a></li></ul></div><a href="/home" data-zone="vercel-marketing" class="link_link__hbWKh footer_logoVercel__Yjmd9"><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="width:16px;height:32px;color:var(--ds-gray-1000)" viewBox="0 0 16 16" width="16" aria-label="Vercel logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M8 1L16 15H0L8 1Z" fill="currentColor"/></svg></a></div><div class="footer_statusRow__FHZde"><a href="https://vercel-status.com" rel="noopener" target="_blank" data-no-border="true" data-testid="footer/status" data-zone="null" class="link_link__hbWKh status-indicator_link__OFbPq"><div class="status-indicator_content__Lqlf4 status-indicator_noBorder__3Wyse"><span class="status-indicator_indicator__Wc_JX status-indicator_secondary__Aa8mG" data-testid="footer/status/secondary"></span><p class="text_wrapper__i87JK status-indicator_statusText__7P9EM status-indicator_secondary__Aa8mG geist-ellipsis" data-version="v1" style="--text-color:var(--ds-gray-1000);--text-size:0.875rem;--text-line-height:1.25rem;--text-letter-spacing:initial;--text-weight:400">Loading status...</p></div></a><fieldset class="tailwind theme-switcher_root__DrzBE ml-auto" data-small=""><legend class="sr-only">Select a display theme:</legend><span style="height:100%"><input aria-label="system" id="theme-switch-system-:Radid3am:" type="radio" value="system"/><label for="theme-switch-system-:Radid3am:"><span class="sr-only">system</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 3.25C0.5 1.45507 1.95507 0 3.75 0H8.25C10.0449 0 11.5 1.45507 11.5 3.25V11.25V12H10.75H1.25H0.5V11.25V3.25ZM3.75 1.5C2.7835 1.5 2 2.2835 2 3.25V10.5H10V3.25C10 2.2835 9.2165 1.5 8.25 1.5H3.75ZM3 3.5C3 2.94772 3.44772 2.5 4 2.5H8C8.55228 2.5 9 2.94772 9 3.5V7H3V3.5ZM6.5 9.5H9V8H6.5V9.5Z" fill="currentColor" transform="translate(2.5, 2)"/> </svg></label></span><span style="height:100%"><input aria-label="light" id="theme-switch-light-:Radid3am:" type="radio" value="light"/><label for="theme-switch-light-:Radid3am:"><span class="sr-only">light</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.75 1V0.25H6.25V1V1.25V2H7.75V1.25V1ZM7 9C8.10457 9 9 8.10457 9 7C9 5.89543 8.10457 5 7 5C5.89543 5 5 5.89543 5 7C5 8.10457 5.89543 9 7 9ZM7 10.5C8.933 10.5 10.5 8.933 10.5 7C10.5 5.067 8.933 3.5 7 3.5C5.067 3.5 3.5 5.067 3.5 7C3.5 8.933 5.067 10.5 7 10.5ZM7.75 12V12.75V13V13.75H6.25V13V12.75V12H7.75ZM12 6.25H12.75H13H13.75V7.75H13H12.75H12V6.25ZM1 6.25H0.25V7.75H1H1.25H2V6.25H1.25H1ZM10.0052 2.93414L10.5355 2.40381L10.7123 2.22703L11.2426 1.6967L12.3033 2.75736L11.773 3.28769L11.5962 3.46447L11.0659 3.9948L10.0052 2.93414ZM2.22703 10.7123L1.6967 11.2426L2.75736 12.3033L3.28769 11.773L3.46447 11.5962L3.9948 11.0659L2.93414 10.0052L2.40381 10.5355L2.22703 10.7123ZM2.93414 3.9948L2.40381 3.46447L2.22703 3.28769L1.6967 2.75736L2.75736 1.6967L3.28769 2.22703L3.46447 2.40381L3.9948 2.93414L2.93414 3.9948ZM10.7123 11.773L11.2426 12.3033L12.3033 11.2426L11.773 10.7123L11.5962 10.5355L11.0659 10.0052L10.0052 11.0659L10.5355 11.5962L10.7123 11.773Z" fill="currentColor" transform="translate(1.25, 1.25)" /></svg></label></span><span style="height:100%"><input aria-label="dark" id="theme-switch-dark-:Radid3am:" type="radio" value="dark"/><label for="theme-switch-dark-:Radid3am:"><span class="sr-only">dark</span><svg data-testid="geist-icon" height="16" stroke-linejoin="round" style="color:currentColor" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.5 0.25V1V1.5H11L11.75 1.5V3H11H10.5V3.5V4.25H9V3.5V3H8.5H7.75V1.5H8.5H9V1V0.25H10.5ZM3.25514 2.75496C2.33413 3.53491 1.75 4.69972 1.75 6C1.75 8.34721 3.65279 10.25 6 10.25C7.30029 10.25 8.4651 9.66587 9.24505 8.74485C9.16377 8.74827 9.08207 8.74999 9 8.74999C5.82436 8.74999 3.25 6.17563 3.25 2.99999C3.25 2.91792 3.25172 2.83623 3.25514 2.75496ZM0.25 6C0.25 3.51072 1.83142 1.39271 4.042 0.592193L5.00256 1.55275C4.83933 2.00347 4.75 2.49047 4.75 2.99999C4.75 5.3472 6.65279 7.24999 9 7.24999C9.50953 7.24999 9.99653 7.16065 10.4473 6.99743L11.4078 7.95798C10.6073 10.1686 8.48929 11.75 6 11.75C2.82436 11.75 0.25 9.17564 0.25 6Z" fill="currentColor" transform="translate(2.25, 2.25)" /></svg></label></span></fieldset></div></nav></footer></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"blurBase64DataURLs":{"https://images.ctfassets.net/e5382hct74si/2aC4eHLrOKmT4fnLfoNGK2/cf62be4001c4886830c7faa564d376a3/CleanShot_2024-04-07_at_22.02.03_2x.png":"data:image/png;base64,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","https://images.ctfassets.net/e5382hct74si/9HIawEMUBUpmhHTcnFscc/4d16c261512ad87d6cc5fefb32510381/CleanShot_2022-03-09_at_19.30.51.png":"data:image/png;base64,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","https://images.ctfassets.net/e5382hct74si/5RZetTd7rd1mQtoZt2fajA/747eabb89b6378ecfc0ef433f5e47a01/CleanShot_2022-12-02_at_12.07.44.png":"data:image/png;base64,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","https://images.ctfassets.net/e5382hct74si/2doqzpUs8MxLW7oOEgxFyo/953a4291f415613e97d2c2cbd63d5464/Auth0-tempate.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAMAAABPT11nAAAAV1BMVEUAAAAICAgJBAIJDQwCAgIODQ4mJicWEA8UEA8QGhcDAwMsKyz19vb59/r59/n39fj7+Pv8+fw3NjcuLi7////q6+zs7e/t7vD39/g4ODjz9PX09fb5+vpK86ZNAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAB3RJTUUH6AsFDykhdb465AAAACRJREFUCB0FwQEGwAAMALELLWP//23HEkW+DLj1AuYBt1Mb1w9U+gQ5JVWsGAAAAABJRU5ErkJggg==","https://images.ctfassets.net/e5382hct74si/1aHobcZ8H6WY48u5CMXlOe/0f0efe6bd469985b692555fbcad1cc01/nextjs-template.png":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAECAAAAACWpiEsAAAACXBIWXMAABcRAAAXEQHKJvM/AAAAB3RJTUUH6AsNCTEdGfOKZwAAACBJREFUCNdj+A8FDP///3r5E8L4duQHhPHv9+9///8DADbDH2uuk04BAAAAAElFTkSuQmCC"},"individualTemplate":{"name":"Next.js Portfolio with Blog","slug":"nextjs-portfolio","order":14,"publisher":"▲ Vercel","thumbnail":{"title":"Portfolio Starter Kit","description":"Portfolio Starter Kit","file":{"url":"//images.ctfassets.net/e5382hct74si/2aC4eHLrOKmT4fnLfoNGK2/cf62be4001c4886830c7faa564d376a3/CleanShot_2024-04-07_at_22.02.03_2x.png","details":{"size":195338,"image":{"width":1924,"height":1370}},"fileName":"CleanShot 2024-04-07 at 22.02.03@2x.png","contentType":"image/png"}},"description":"Easily create a portfolio with Next.js and Markdown.","framework":["Next.js"],"type":["Portfolio","Blog"],"css":["Tailwind"],"relatedTemplates":[{"name":"Blog Starter Kit","slug":"blog-starter-kit","order":8,"publisher":"▲ Vercel","thumbnail":{"title":"Blog Starter Kit Thumbnail Image","description":"Blog Starter Kit Thumbnail Image","file":{"url":"//images.ctfassets.net/e5382hct74si/9HIawEMUBUpmhHTcnFscc/4d16c261512ad87d6cc5fefb32510381/CleanShot_2022-03-09_at_19.30.51.png","details":{"size":869788,"image":{"width":1571,"height":1106}},"fileName":"CleanShot 2022-03-09 at 19.30.51.png","contentType":"image/png"}},"description":"A statically generated blog example using Next.js and Markdown.","framework":["Next.js"],"type":["Blog"],"css":["Tailwind"],"overview":"\u003e A statically generated blog example using Next.js and Markdown\n\nThis example showcases Next.js's [Static Generation](https://nextjs.org/docs/basic-features/pages) feature using Markdown files as the data source.\n\nThe blog posts are stored in `/_posts` as Markdown files with front matter support. Adding a new Markdown file in there will create a new blog post.\n\nTo create the blog posts we use [`remark`](https://github.com/remarkjs/remark) and [`remark-html`](https://github.com/remarkjs/remark-html) to convert the Markdown files into an HTML string, and then send it down as a prop to the page. The metadata of every post is handled by [`gray-matter`](https://github.com/jonschlinkert/gray-matter) and also sent in props to the page.\n\n## Preview\n\nPreview the example live on [StackBlitz](http://stackblitz.com/):\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/vercel/next.js/tree/canary/examples/blog-starter)\n\n## Demo\n\n[https://next-blog-starter.vercel.app/](https://next-blog-starter.vercel.app/)\n\n## Deploy your own\n\nDeploy the example using [Vercel](https://vercel.com?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=next-example):\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https://github.com/vercel/next.js/tree/canary/examples/blog-starter\u0026project-name=blog-starter\u0026repository-name=blog-starter)\n\n## How to use\n\nExecute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) with [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the example:\n\n```\nnpx create-next-app --example blog-starter blog-starter-app\n\n```\n\nor\n\n```\nyarn create next-app --example blog-starter blog-starter-app\n\n```\n\nYour blog should be up and running on [http://localhost:3000](http://localhost:3000)! If it doesn't work, post on [GitHub discussions](https://github.com/vercel/next.js/discussions).\n\nDeploy it to the cloud with [Vercel](https://vercel.com/new?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=next-example) ([Documentation](https://nextjs.org/docs/deployment)).\n\n# Notes\n\nThis blog-starter uses [Tailwind CSS](https://tailwindcss.com). To control the generated stylesheet's filesize, this example uses Tailwind CSS' v2.0 [`purge` option](https://tailwindcss.com/docs/controlling-file-size/#removing-unused-css) to remove unused CSS.","relatedTemplates":[],"githubUrl":"https://github.com/vercel/next.js/tree/canary/examples/blog-starter","demoUrl":"https://next-blog-starter.vercel.app/"},{"name":"Nextra: Docs Starter Kit","slug":"documentation-starter-kit","order":4,"publisher":"▲ Vercel","thumbnail":{"title":"Nextra: Documentation Starter Kit Thumbnail Image","description":"Nextra: Documentation Starter Kit Thumbnail Image","file":{"url":"//images.ctfassets.net/e5382hct74si/5RZetTd7rd1mQtoZt2fajA/747eabb89b6378ecfc0ef433f5e47a01/CleanShot_2022-12-02_at_12.07.44.png","details":{"size":1211627,"image":{"width":1870,"height":1259}},"fileName":"CleanShot 2022-12-02 at 12.07.44.png","contentType":"image/png"}},"description":"Simple, powerful and flexible markdown-powered docs site. Built with Next.js.","framework":["Next.js"],"type":["Documentation"],"css":["Tailwind"],"relatedTemplates":[],"githubUrl":"https://github.com/shuding/nextra-docs-template","demoUrl":"https://nextra-docs-template.vercel.app/"},{"name":"Blog (with comments)","slug":"blog-with-comments","publisher":"Auth0","thumbnail":{"title":"Blog with comments thumbnail image [with logos]","description":"Blog with comments thumbnail image","file":{"url":"//images.ctfassets.net/e5382hct74si/2doqzpUs8MxLW7oOEgxFyo/953a4291f415613e97d2c2cbd63d5464/Auth0-tempate.png","details":{"size":195983,"image":{"width":2092,"height":1284}},"fileName":"Auth0-tempate.png","contentType":"image/png"}},"description":"Next.js blog application with Auth0 and Upstash","framework":["Next.js"],"type":["Blog","Authentication"],"css":["Tailwind"],"database":["Upstash"],"auth":["Auth0"],"overview":"This project adds commenting functionality to [Next.js blog application](https://github.com/vercel/next.js/tree/canary/examples/blog) using Upstash and Auth0.\n\nThe comment box requires Auth0 authentication for users to add new comments. A user can delete their own comment. Also admin user can delete any comment.\n\nComments are stored in Serverless Redis ([Upstash](http://upstash.com/)).\n\n### Demo\n\n[https://blog-with-comment.vercel.app/](https://blog-with-comment.vercel.app/)\n\n## `1` Project set up\n\nExecute [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app)\nwith [npm](https://docs.npmjs.com/cli/init) or [Yarn](https://yarnpkg.com/lang/en/docs/cli/create/) to bootstrap the\nexample:\n\n```bash\nnpx create-next-app --example blog-with-comment blog-with-comment-app\n```\n\n## `2` Set up environment variables\n\nCopy the `.env.local.example` file in this directory to `.env.local` (which will be ignored by Git):\n\n```bash\ncp .env.local.example .env.local\n```\n\n## `3` Configuring Upstash\n\nGo to the [Upstash Console](https://console.upstash.com/) and create a new database\n\n#### Upstash environment\n\n- `REDIS_URL`: Find the URL in the database details page in Upstash Console clicking on **Redis Connect** button.\n\n## `4` Configuring Auth0\n\n1. Go to the [Auth0 dashboard](https://manage.auth0.com/) and create a new application of type **Single Page Web\n Applications**.\n2. Go to the settings page of the application\n3. Configure the following settings:\n - **Allowed Callback URLs**: Should be set to `http://localhost:3000/` when testing locally or typically\n to `https://myapp.com/` when deploying your application.\n - **Allowed Logout URLs**: Should be set to `http://localhost:3000/` when testing locally or typically\n to `https://myapp.com/` when deploying your application.\n4. Save the settings.\n\n#### Auth0 environment\n\n- `NEXT_PUBLIC_AUTH0_DOMAIN`: Can be found in the Auth0 dashboard under `settings`.\n- `NEXT_PUBLIC_AUTH0_CLIENT_ID`: Can be found in the Auth0 dashboard under `settings`.\n- `NEXT_PUBLIC_AUTH0_ADMIN_EMAIL`: This is the email of the admin user which you use while singing in Auth0. Admin is able to delete any comment.\n\n## Deploy Your Local Project\n\nTo deploy your local project to Vercel, push it to GitHub/GitLab/Bitbucket\nand [import to Vercel](https://vercel.com/new?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=upstash-roadmap).\n\n**Important**: When you import your project on Vercel, make sure to click on **Environment Variables** and set them to\nmatch your `.env.local` file.\n","relatedTemplates":[],"githubUrl":"https://github.com/vercel/next.js/tree/canary/examples/blog-with-comment","demoUrl":"https://blog-with-comment.vercel.app/","integrations":["oac_V3R1GIpkoJorr6fqyiwdhl17","oac_7V7TGP5JUHCpSncpiy3XWwL0"],"integrationsOptional":false,"requiredEnvs":["NEXT_PUBLIC_AUTH0_DOMAIN","NEXT_PUBLIC_AUTH0_CLIENT_ID","NEXT_PUBLIC_AUTH0_ADMIN_EMAIL"],"requiredEnvsDescription":"Learn more about configuring these env vars","requiredEnvsLink":"https://github.com/vercel/next.js/tree/canary/examples/blog-with-comment#3-configuring-upstash"},{"name":"Next.js Boilerplate","slug":"nextjs-boilerplate","order":1,"publisher":"▲ Vercel","thumbnail":{"title":"create-next-app template — light","description":"","file":{"url":"//images.ctfassets.net/e5382hct74si/1aHobcZ8H6WY48u5CMXlOe/0f0efe6bd469985b692555fbcad1cc01/nextjs-template.png","details":{"size":105477,"image":{"width":2400,"height":1260}},"fileName":"nextjs-template.png","contentType":"image/png"}},"description":"Get started with Next.js and React in seconds.","framework":["Next.js"],"type":["Starter"],"css":["CSS Modules"],"relatedTemplates":[],"githubUrl":"https://github.com/vercel/vercel/tree/main/examples/nextjs","demoUrl":"https://nextjs-template.vercel.app/"}],"githubUrl":"https://github.com/vercel/examples/tree/main/solutions/blog","demoUrl":"https://portfolio-blog-starter.vercel.app","integrationsOptional":true,"sys":{"space":{"sys":{"type":"Link","linkType":"Space","id":"e5382hct74si"}},"id":"1WbTDaEUzUq0auTdJiuOkn","type":"Entry","createdAt":"2022-04-12T16:06:26.269Z","updatedAt":"2024-08-22T18:06:52.790Z","environment":{"sys":{"id":"master","type":"Link","linkType":"Environment"}},"publishedVersion":52,"revision":16,"contentType":{"sys":{"type":"Link","linkType":"ContentType","id":"templates"}},"locale":"en-US"},"customThumbnail":null,"overviewMdx":{"compiledSource":"var c=Object.defineProperty,h=Object.defineProperties;var u=Object.getOwnPropertyDescriptors;var l=Object.getOwnPropertySymbols;var r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;var i=(e,t,p)=\u003et in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:p}):e[t]=p,o=(e,t)=\u003e{for(var p in t||(t={}))r.call(t,p)\u0026\u0026i(e,p,t[p]);if(l)for(var p of l(t))n.call(t,p)\u0026\u0026i(e,p,t[p]);return e},m=(e,t)=\u003eh(e,u(t));var s=(e,t)=\u003e{var p={};for(var a in e)r.call(e,a)\u0026\u0026t.indexOf(a)\u003c0\u0026\u0026(p[a]=e[a]);if(e!=null\u0026\u0026l)for(var a of l(e))t.indexOf(a)\u003c0\u0026\u0026n.call(e,a)\u0026\u0026(p[a]=e[a]);return p};const layoutProps={},MDXLayout=\"wrapper\";function MDXContent(p){var a=p,{components:e}=a,t=s(a,[\"components\"]);return mdx(MDXLayout,m(o(o({},layoutProps),t),{components:e,mdxType:\"MDXLayout\"}),mdx(\"h1\",null,\"Portfolio Blog Starter\"),mdx(\"p\",null,\"This is a porfolio site template complete with a blog. Includes:\"),mdx(\"ul\",null,mdx(\"li\",{parentName:\"ul\"},\"MDX and Markdown support\"),mdx(\"li\",{parentName:\"ul\"},\"Optimized for SEO (sitemap, robots, JSON-LD schema)\"),mdx(\"li\",{parentName:\"ul\"},\"RSS Feed\"),mdx(\"li\",{parentName:\"ul\"},\"Dynamic OG images\"),mdx(\"li\",{parentName:\"ul\"},\"Syntax highlighting\"),mdx(\"li\",{parentName:\"ul\"},\"Tailwind v4\"),mdx(\"li\",{parentName:\"ul\"},\"Vercel Speed Insights / Web Analytics\"),mdx(\"li\",{parentName:\"ul\"},\"Geist font\")),mdx(\"h2\",null,\"Demo\"),mdx(\"p\",null,mdx(\"a\",o({parentName:\"p\"},{href:\"https://portfolio-blog-starter.vercel.app\"}),\"https://portfolio-blog-starter.vercel.app\")),mdx(\"h2\",null,\"How to Use\"),mdx(\"p\",null,\"You can choose from one of the following two methods to use this repository:\"),mdx(\"h3\",null,\"One-Click Deploy\"),mdx(\"p\",null,\"Deploy the example using \",mdx(\"a\",o({parentName:\"p\"},{href:\"https://vercel.com?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=vercel-examples\"}),\"Vercel\"),\":\"),mdx(\"p\",null,mdx(\"a\",o({parentName:\"p\"},{href:\"https://vercel.com/new/clone?repository-url=https://github.com/vercel/examples/tree/main/solutions/blog\u0026project-name=blog\u0026repository-name=blog\"}))),mdx(\"h3\",null,\"Clone and Deploy\"),mdx(\"p\",null,\"Execute \",mdx(\"a\",o({parentName:\"p\"},{href:\"https://github.com/vercel/next.js/tree/canary/packages/create-next-app\"}),mdx(\"inlineCode\",{parentName:\"a\"},\"create-next-app\")),\" with \",mdx(\"a\",o({parentName:\"p\"},{href:\"https://pnpm.io/installation\"}),\"pnpm\"),\" to bootstrap the example:\"),mdx(\"pre\",null,mdx(\"code\",{parentName:\"pre\"},`pnpm create next-app --example https://github.com/vercel/examples/tree/main/solutions/blog blog\n`)),mdx(\"p\",null,\"Then, run Next.js in development mode:\"),mdx(\"pre\",null,mdx(\"code\",{parentName:\"pre\"},`pnpm dev\n`)),mdx(\"p\",null,\"Deploy it to the cloud with \",mdx(\"a\",o({parentName:\"p\"},{href:\"https://vercel.com/templates\"}),\"Vercel\"),\" (\",mdx(\"a\",o({parentName:\"p\"},{href:\"https://nextjs.org/docs/app/building-your-application/deploying\"}),\"Documentation\"),\").\"))}MDXContent.isMDXComponent=!0;\n","scope":{}}},"initialFilterOption":null,"templates":[],"filters":[],"skeleton":false},"__N_SSG":true},"page":"/templates/[[...slug]]","query":{"slug":["next.js","nextjs-portfolio"]},"buildId":"Im0heFU3fYXCc-N1v06FJ","isFallback":false,"isExperimentalCompile":false,"gsp":true,"scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10