Skip to content
New Project
Templates
Template name
Templates

Adding Cookies

Read and write cookies directly at the edge.

DeployView Demo
Owner
  • vercel
Repository
  • examples
Use Cases
  • Edge Middleware
Stack
  • Next.js
  • Tailwind
DeployView Demo

Cookies Example

You can read and write cookies directly on the edge and action as needed.

Demo

https://edge-functions-cookies.vercel.app

Since you can read cookies on the edge and rewrite the user to a statically generated page, eliminates the need of using getServerSideProps + redirect just to access the cookie, hence improving your site's performance and maintaining the same url.

The magic happens in the middleware.ts file:

import { NextRequest, NextResponse } from 'next/server'
export const config = {
matcher: '/',
}
export default function middleware(req: NextRequest) {
// Parse the cookie
const isInBeta = JSON.parse(req.cookies.get('beta')?.value || 'false')
// Update url pathname
req.nextUrl.pathname = `/${isInBeta ? 'beta' : 'non-beta'}`
// Rewrite to url
return NextResponse.rewrite(req.nextUrl)
}

How to Use

You can choose from one of the following two methods to use this repository:

One-Click Deploy

Deploy the example using Vercel:

Clone and Deploy

Execute create-next-app with pnpm to bootstrap the example:

pnpm create next-app --example https://github.com/vercel/examples/tree/main/edge-middleware/cookies cookies

Next, run Next.js in development mode:

pnpm dev

Deploy it to the cloud with Vercel (Documentation).

Related Templates

  • A/B Testing Simple thumbnail

    A/B Testing Simple

    By A/B testing at the edge, you'll reduce CLS from client-loaded experiments and improve your site's performance with smaller JS bundles.

License
  • View License