Harden a Vercel app at the platform edge - the Vercel WAF (custom rules, IP blocking, managed rulesets like OWASP CRS + bot_protection + ai_bots, rate limiting), Attack Challenge Mode, system bypass rules, automatic DDoS mitigation, and BotID bot verification on sensitive routes. Use when someone says "protect my Vercel app", "add a WAF rule", "rate limit my API", "block this IP / country / user-agent", "I'm getting DDoSed", "stop bots / scrapers / AI crawlers", "turn on Attack Mode", "verify human vs bot on checkout/signup/login", or "set up BotID". Do NOT use for app-level auth/session logic - that is application code; do NOT use for env vars or secrets - use vercel-env-management; do NOT use for the deploy/promote/rollback flow - use vercel-deploy-pipeline.
Click to play with sound.
---
name: Vercel Firewall and BotID
description: Harden a Vercel app at the platform edge - the Vercel WAF (custom rules, IP blocking, managed rulesets like OWASP CRS + bot_protection + ai_bots, rate limiting), Attack Challenge Mode, system bypass rules, automatic DDoS mitigation, and BotID bot verification on sensitive routes. Use when someone says "protect my Vercel app", "add a WAF rule", "rate limit my API", "block this IP / country / user-agent", "I'm getting DDoSed", "stop bots / scrapers / AI crawlers", "turn on Attack Mode", "verify human vs bot on checkout/signup/login", or "set up BotID". Do NOT use for app-level auth/session logic - that is application code; do NOT use for env vars or secrets - use vercel-env-management; do NOT use for the deploy/promote/rollback flow - use vercel-deploy-pipeline.
---
# Vercel Firewall and BotID
This is the security stage of the ship-a-Next.js-app-on-Vercel workflow. You make
the app hard to attack at the edge - before a single request reaches a Function -
and you make abuse-prone routes prove the caller is human. Two systems do this,
and they are not interchangeable:
- The **Vercel WAF / Firewall** filters traffic by request shape (IP, path,
geo, user-agent, headers, JA4) and by rate. It runs on the Edge Network in
front of every deployment, included on all plans, and you pay nothing extra to
deny a request before it bills compute. Configure it once per project.
- **BotID** is invisible, per-route bot verification you call from server code on
the specific endpoints that get abused (checkout, signup, login, "add to cart",
LLM-backed routes). It is a JS challenge plus deep analysis, and it does not
show a CAPTCHA to humans.
Use both, in that order: the WAF is the blanket, BotID is the lock on the doors
that matter. This skill is opinionated and sequenced; it is deliberately **not** a
restatement of the official `vercel firewall` CLI plugin - it tells you what to
turn on, in what order, and what NOT to do.… install to load the full skill