# Vercel Edge Middleware examples

Browse examples of how to use and apply Vercel Edge Middleware.

- [Bot Detection with Botd](https://vercel.com/templates/next.js/bot-protection-botd): Botd is a browser library for bot detection. In this template we'll be using it alongside botd-integrations for bot detection at the edge.
- [Bot Protection with DataDome](https://vercel.com/templates/next.js/bot-protection-datadome): DataDome can provide real-time bot protection and other security protections to any website. In this template we'll be using it at the edge.
- [i18n in Edge Middleware](https://vercel.com/templates/next.js/edge-functions-i18n): This template shows how to redirect users based on i18n configuration.
- [Geolocation in Edge Middleware](https://vercel.com/templates/next.js/edge-functions-geolocation): Learn how to use visitor's location at the edge.
- [Vercel Edge Middleware Rate Limit](https://vercel.com/templates/other/middleware-rate-limit): Add rate limiting to your application with any frontend framework.
- [Filtering Query Parameters](https://vercel.com/templates/next.js/edge-functions-filter-query-params): Learn how to filter query params in Edge Middleware.
- [Modifying Request Headers in Middleware](https://vercel.com/templates/next.js/edge-functions-modify-request-header): Learn to add/update/delete request headers in a middleware.
- [Hostname Rewrites using Edge Middleware](https://vercel.com/templates/next.js/hostname-rewrites): Learn how to programmatically create unique content pages for your users with a multi-tenant infrastructure using Edge Middleware.
- [Adding Cookies](https://vercel.com/templates/next.js/cookies): Read and write cookies directly at the edge.
- [Adding Response Headers in Edge Middleware](https://vercel.com/templates/next.js/edge-functions-add-header): Learn to add response headers at the edge.
- [IP Blocking with Upstash](https://vercel.com/templates/next.js/ip-blocking): Template featuring IP Blocking at the edge using Upstash.
- [IP Blocking with DataDome](https://vercel.com/templates/next.js/ip-blocking-datadome): DataDome can provide real-time bot protection, ip blocking, custom rules protection and other security protections to any website.
- [Power Parity Pricing Strategies](https://vercel.com/templates/next.js/power-parity-pricing-strategies): Shows the differences between doing PPP at the edge using information from the geolocation object, Node.js SSR, and client-side rendering.
- [Power Parity Pricing](https://vercel.com/templates/next.js/power-parity-pricing): Implement power parity pricing using information from the request geolocation object in Edge Middleware.
- [User-Agent Based Rendering](https://vercel.com/templates/next.js/edge-functions-user-agent-based-rendering): Learn how to render a different page based on the User-Agent header.
- [Edge Redirects with Upstash](https://vercel.com/templates/next.js/edge-redirects-upstash): Redirect from a list of redirects both hardcoded and coming from Upstash (Redis), that get evaluated at the edge.
- [Rewriting at the Edge using Upstash](https://vercel.com/templates/next.js/edge-rewrites-upstash): Learn how to avoid calling several services by pre-checking stock at the edge using a redis cache.
- [Basic Auth Password Protection](https://vercel.com/templates/next.js/basic-auth-password): Password protect pages in your application using Edge Middleware.
- [Blue-Green Deployments on Vercel](https://vercel.com/templates/next.js/blue-green-deployments-vercel): See how Vercel's Skew Protection feature enables production-ready blue-green deployments with just a few lines of code.
- [A/B Testing Simple](https://vercel.com/templates/next.js/ab-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.
- [Maintenance Page](https://vercel.com/templates/next.js/maintenance-page): This template shows how to quickly trigger a maintenance page using Edge Config
- [Split Integration example](https://vercel.com/templates/next.js/ab-testing-split): Learn to use Split, a feature delivery platform that powers feature flag management, software experimentation and continuous delivery.
- [LaunchDarkly Integration example](https://vercel.com/templates/next.js/feature-flag-launchdarkly): Learn how to set up the LaunchDarkly integration to read flags from Edge Config
- [Feature Flags with Optimizely](https://vercel.com/templates/next.js/feature-flag-optimizely): Learn how to use optimizely to conduct experiments at the edge.

---

## Additional documentation

The [Vercel Knowledge Base](https://vercel.com/kb) contains guides and answers to common questions about Vercel, including deployment, framework configuration, domains, caching, and troubleshooting.
